summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Benn <evanbenn@chromium.org>2022-12-13 15:57:50 +1100
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-12-14 06:47:55 +0000
commitcf416d357fc56a6b62e7774e8a012dbc8706ba8a (patch)
tree88ff7edbdf3092c8df79aaad2d399597ef10774b
parent98ee7738d8ea5fbb505c15f63118c9b938df3ff0 (diff)
downloadvboot-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.c27
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)