summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMario Six <mario.six@gdsys.cc>2017-02-13 10:11:55 +0100
committerStefan Roese <sr@denx.de>2017-02-17 10:15:21 +0100
commit1f6c8a573381ed7d4f506ab45eeb23fb2a896660 (patch)
tree83434198dbe2e6fd653c5f1e432669091ffa7561 /tools
parent85d0bea153c76f4a3912b5683222885bfd37c769 (diff)
downloadu-boot-imx-1f6c8a573381ed7d4f506ab45eeb23fb2a896660.zip
u-boot-imx-1f6c8a573381ed7d4f506ab45eeb23fb2a896660.tar.gz
u-boot-imx-1f6c8a573381ed7d4f506ab45eeb23fb2a896660.tar.bz2
tools: kwbimage: Fix unchecked return value and fd leak
The return value of fstat was not checked in kwbimage, and in the case of an error, the already open file was not closed. Fix both errors. Reported-by: Coverity (CID: 155971) Reported-by: Coverity (CID: 155969) Signed-off-by: Mario Six <mario.six@gdsys.cc> Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'tools')
-rw-r--r--tools/kwbimage.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index 93797c9..2c637c7 100644
--- a/tools/kwbimage.c
+++ b/tools/kwbimage.c
@@ -992,7 +992,11 @@ int add_binary_header_v1(uint8_t *cur)
return -1;
}
- fstat(fileno(bin), &s);
+ if (fstat(fileno(bin), &s)) {
+ fprintf(stderr, "Cannot stat binary file %s\n",
+ binarye->binary.file);
+ goto err_close;
+ }
binhdrsz = sizeof(struct opt_hdr_v1) +
(binarye->binary.nargs + 2) * sizeof(uint32_t) +
@@ -1022,7 +1026,7 @@ int add_binary_header_v1(uint8_t *cur)
fprintf(stderr,
"Could not read binary image %s\n",
binarye->binary.file);
- return -1;
+ goto err_close;
}
fclose(bin);
@@ -1040,6 +1044,11 @@ int add_binary_header_v1(uint8_t *cur)
cur += sizeof(uint32_t);
return 0;
+
+err_close:
+ fclose(bin);
+
+ return -1;
}
#if defined(CONFIG_KWB_SECURE)