summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Spiegel <richard.spiegel@silverbackltd.com>2018-01-17 09:58:13 -0700
committerMartin Roth <martinroth@google.com>2018-01-23 20:10:52 +0000
commitbff4545ccfdc8ac1ae9848881a85937bff8edb94 (patch)
treed1ee5846e296ecbc5abe095db53e3f686929976f
parent8bd8cd3a222bb8d54fd2510728c87dc6909b287c (diff)
util/amdfwtool/amdfwtool.c: Check for negative return
File open function <open()> will return -1 if there's any error. Check that the return is greater or equal to 0 before using fstat(). Print error message and exit if there's an error. This fixes CIDs 1353018, 1353020, 1353027 and 1353028 BUG=b:72062481 TEST=Build no errors Change-Id: I77d6973d1ad1eadb93922866e618038045be5937 Signed-off-by: Richard Spiegel <richard.spiegel@silverbackltd.com> Reviewed-on: https://review.coreboot.org/23303 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--util/amdfwtool/amdfwtool.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/util/amdfwtool/amdfwtool.c b/util/amdfwtool/amdfwtool.c
index 61c2a0587d..289d47a53e 100644
--- a/util/amdfwtool/amdfwtool.c
+++ b/util/amdfwtool/amdfwtool.c
@@ -292,6 +292,11 @@ static uint32_t integrate_firmwares(char *base, uint32_t pos, uint32_t *romsig,
for (i = 0; fw_table[i].type != AMD_FW_INVALID; i++) {
if (fw_table[i].filename != NULL) {
fd = open(fw_table[i].filename, O_RDONLY);
+ if (fd < 0) {
+ printf("Error: %s\n", strerror(errno));
+ free(base);
+ exit(1);
+ }
fstat(fd, &fd_stat);
switch (fw_table[i].type) {
@@ -349,6 +354,11 @@ static uint32_t integrate_psp_firmwares(char *base, uint32_t pos,
pspdir[4+4*i+0] = fw_table[i].type;
fd = open(fw_table[i].filename, O_RDONLY);
+ if (fd < 0) {
+ printf("Error: %s\n", strerror(errno));
+ free(base);
+ exit(1);
+ }
fstat(fd, &fd_stat);
pspdir[4+4*i+1] = (uint32_t)fd_stat.st_size;