diff options
author | Evan Benn <evanbenn@chromium.org> | 2022-12-13 15:57:50 +1100 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-12-14 06:47:55 +0000 |
commit | cf416d357fc56a6b62e7774e8a012dbc8706ba8a (patch) | |
tree | 88ff7edbdf3092c8df79aaad2d399597ef10774b | |
parent | 98ee7738d8ea5fbb505c15f63118c9b938df3ff0 (diff) | |
download | vboot-cf416d357fc56a6b62e7774e8a012dbc8706ba8a.tar.gz |
futility: gbb: Handle errors in reading files
Detect errors and exit on errors from read_from_file.
BUG=b:260531154
BRANCH=None
TEST=FEATURES=test emerge-grunt vboot_reference
TEST=futility gbb -s --flags 0x0 /tmp/bios /tmp/bios2 --bmp_fv /dev/null
TEST=futility gbb -g /tmp/bios
Change-Id: I1e24342642bcc276c6fb195ebfc95a1393100147
Signed-off-by: Evan Benn <evanbenn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4099828
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
-rw-r--r-- | futility/cmd_gbb_utility.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/futility/cmd_gbb_utility.c b/futility/cmd_gbb_utility.c index 50fe8e62..c0e5fc51 100644 --- a/futility/cmd_gbb_utility.c +++ b/futility/cmd_gbb_utility.c @@ -583,18 +583,27 @@ static int do_gbb(int argc, char *argv[]) } if (opt_rootkey) { - read_from_file("root_key", opt_rootkey, - gbb_base + gbb->rootkey_offset, - gbb->rootkey_size); + if (read_from_file("root_key", opt_rootkey, + gbb_base + gbb->rootkey_offset, + gbb->rootkey_size)) { + errorcnt++; + break; + } } if (opt_bmpfv) - read_from_file("bmp_fv", opt_bmpfv, - gbb_base + gbb->bmpfv_offset, - gbb->bmpfv_size); + if (read_from_file("bmp_fv", opt_bmpfv, + gbb_base + gbb->bmpfv_offset, + gbb->bmpfv_size)) { + errorcnt++; + break; + } if (opt_recoverykey) - read_from_file("recovery_key", opt_recoverykey, - gbb_base + gbb->recovery_key_offset, - gbb->recovery_key_size); + if (read_from_file("recovery_key", opt_recoverykey, + gbb_base + gbb->recovery_key_offset, + gbb->recovery_key_size)) { + errorcnt++; + break; + } /* Write it out if there are no problems. */ if (!errorcnt) |