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>
This commit is contained in:
Mario Six 2017-02-13 10:11:55 +01:00 committed by Stefan Roese
parent 85d0bea153
commit 1f6c8a5733
1 changed files with 11 additions and 2 deletions

View File

@ -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)