summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorDaniele Forsi <dforsi@gmail.com>2014-08-03 13:47:58 +0200
committerPatrick Georgi <patrick@georgi-clan.de>2014-08-12 09:02:44 +0200
commitea70a5068fb6df4adcdb43142e77fdb2e9ccac1e (patch)
treedd12f84837a4b9a9e26ff39e235c8e9db7563c00 /util
parent21fbc08d4b3f99ca606dc1b9e12bcffef65bfb50 (diff)
downloadcoreboot-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>
Diffstat (limited to 'util')
-rw-r--r--util/genprof/genprof.c16
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;
}