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> | 2023-03-29 08:18:33 +0000 |
commit | 583aabfbe4edc8a6eb8adeeefd313bb86ba6d03b (patch) | |
tree | 88ff7edbdf3092c8df79aaad2d399597ef10774b | |
parent | 4056042d3880bdb5b29e8b83cb7f7c1ba62aa2fa (diff) | |
download | vboot-583aabfbe4edc8a6eb8adeeefd313bb86ba6d03b.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
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4099828
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4380944
Commit-Queue: Cheng Yueh <cyueh@chromium.org>
Auto-Submit: Phoebe Wang <phoebewang@chromium.org>
Reviewed-by: Cheng Yueh <cyueh@chromium.org>
Tested-by: Phoebe Wang <phoebewang@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) |