diff options
author | Daniele Forsi <dforsi@gmail.com> | 2014-08-03 13:47:58 +0200 |
---|---|---|
committer | Patrick Georgi <patrick@georgi-clan.de> | 2014-08-12 09:02:44 +0200 |
commit | ea70a5068fb6df4adcdb43142e77fdb2e9ccac1e (patch) | |
tree | dd12f84837a4b9a9e26ff39e235c8e9db7563c00 | |
parent | 21fbc08d4b3f99ca606dc1b9e12bcffef65bfb50 (diff) | |
download | coreboot-ea70a5068fb6df4adcdb43142e77fdb2e9ccac1e.tar.xz |
util/genprof: improve handling of command line arguments
Accept only one command line argument (the input file name); close input
stream both on error and on success; print more informative error messages
when files could not be opened.
Change-Id: Ib2f0622a332317d7a13f33f1e5787381804c43a9
Found-by: missing fclose()'s found by Cppcheck 1.65
Signed-off-by: Daniele Forsi <dforsi@gmail.com>
Reviewed-on: http://review.coreboot.org/6573
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
-rw-r--r-- | util/genprof/genprof.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/util/genprof/genprof.c b/util/genprof/genprof.c index 9fc39da982..f4dd4cb7c1 100644 --- a/util/genprof/genprof.c +++ b/util/genprof/genprof.c @@ -46,17 +46,21 @@ int main(int argc, char* argv[]) uint8_t tag; uint16_t hit; - if ( argc < 2 ) - { + if (argc != 2) { fprintf(stderr, "Please specify the coreboot trace log as parameter\n"); return 1; } f = fopen(argv[1], "r"); - fo = fopen("gmon.out", "w+"); + if (f == NULL) { + perror("Unable to open the input file"); + return 1; + } - if ((f == NULL) || (fo == NULL)) { - fprintf(stderr, "Unable to manipulate with the input file\n"); + fo = fopen("gmon.out", "w+"); + if (fo == NULL) { + perror("Unable to open the output file"); + fclose(f); return 1; } @@ -104,5 +108,7 @@ int main(int argc, char* argv[]) } fclose(fo); + fclose(f); + return 0; } |