util/amdfwtool/amdfwtool.c: Check fstat return

Funtion fstat will return -1 if there's any error, 0 if successful.
Check that fstat return is equal to 0, print error message and exit if
not 0.

This fixes CIDs 1353018 and 1353020

BUG=b:72062481
TEST=Build no errors

Change-Id: I83284d9125c75a29471f213f88b9181d5edba2e6
Signed-off-by: Richard Spiegel <richard.spiegel@silverbackltd.com>
Reviewed-on: https://review.coreboot.org/23827
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Richard Spiegel 2018-02-20 14:20:15 -07:00 committed by Patrick Georgi
parent 51605e2c9e
commit 7b89a28149
1 changed files with 10 additions and 2 deletions

View File

@ -298,7 +298,11 @@ static uint32_t integrate_firmwares(char *base, uint32_t pos, uint32_t *romsig,
free(base); free(base);
exit(1); exit(1);
} }
fstat(fd, &fd_stat); if (fstat(fd, &fd_stat)) {
printf("fstat error: %s\n", strerror(errno));
free(base);
exit(1);
}
switch (fw_table[i].type) { switch (fw_table[i].type) {
case AMD_FW_IMC: case AMD_FW_IMC:
@ -369,7 +373,11 @@ static uint32_t integrate_psp_firmwares(char *base, uint32_t pos,
free(base); free(base);
exit(1); exit(1);
} }
fstat(fd, &fd_stat); if (fstat(fd, &fd_stat)) {
printf("fstat error: %s\n", strerror(errno));
free(base);
exit(1);
}
pspdir[4+4*i+1] = (uint32_t)fd_stat.st_size; pspdir[4+4*i+1] = (uint32_t)fd_stat.st_size;
pspdir[4+4*i+2] = pos + rom_base_address; pspdir[4+4*i+2] = pos + rom_base_address;