summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Czapiga <jacz@semihalf.com>2022-10-27 13:19:06 +0200
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-11-09 03:00:31 +0000
commit323b523c0f47221185378745fc9852593688db43 (patch)
tree7a88723cd1d5f0741a1baa567bc7483e8f18e2d5
parent36b88a46bca483a018ca49cb1ca894be673f91b4 (diff)
downloadvboot-firmware-nissa-15217.45.B.tar.gz
firmware: Die on zero size errors vb2api_get_firmware_size()firmware-nissa-15217.Bfirmware-nissa-15217.45.Bfirmware-nissa-15217.126.B
BUG=none BRANCH=none TEST=make runtests -j8 Signed-off-by: Jakub Czapiga <jacz@semihalf.com> Disallow-Recycled-Builds: test-failures Change-Id: I9c22627410836906a84c387377facc778dd77f3b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/3986523 Tested-by: Jakub Czapiga <czapiga@google.com> Reviewed-by: Julius Werner <jwerner@chromium.org> Commit-Queue: Jakub Czapiga <czapiga@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4005142 Reviewed-by: Reka Norman <rekanorman@chromium.org> Commit-Queue: Reka Norman <rekanorman@chromium.org> Tested-by: Kangheui Won <khwon@chromium.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org>
-rw-r--r--firmware/2lib/2misc.c6
-rw-r--r--tests/vb2_api_tests.c2
2 files changed, 6 insertions, 2 deletions
diff --git a/firmware/2lib/2misc.c b/firmware/2lib/2misc.c
index 66a31e83..c14aab55 100644
--- a/firmware/2lib/2misc.c
+++ b/firmware/2lib/2misc.c
@@ -43,10 +43,14 @@ uint32_t vb2api_get_firmware_size(struct vb2_context *ctx)
{
struct vb2_shared_data *sd = vb2_get_sd(ctx);
if (!sd->preamble_size)
- return 0;
+ VB2_DIE("Firmware preamble size is zero\n");
const struct vb2_fw_preamble *pre = (const struct vb2_fw_preamble *)
vb2_member_of(sd, sd->preamble_offset);
+
+ if (!pre->body_signature.data_size)
+ VB2_DIE("Firmware body data size in signature is zero\n");
+
return pre->body_signature.data_size;
}
diff --git a/tests/vb2_api_tests.c b/tests/vb2_api_tests.c
index 3ed8bd5f..2ff69e8d 100644
--- a/tests/vb2_api_tests.c
+++ b/tests/vb2_api_tests.c
@@ -288,7 +288,7 @@ static void misc_tests(void)
reset_common_data(FOR_MISC);
sd->preamble_size = 0;
- TEST_EQ(vb2api_get_firmware_size(ctx), 0, "firmware_size too early");
+ TEST_ABORT(vb2api_get_firmware_size(ctx), "firmware_size too early");
/* Test VB2_TRY() */
reset_common_data(FOR_MISC);