summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2014-10-22 15:21:32 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-10-23 03:32:57 +0000
commitb035e370a7ca315d1e4d249274893ef11bcac700 (patch)
tree30f89ba4ea429f9638e78027f380268d51d9c874
parent9504754fee346569b4cdcaae9f54fa65cf3005d9 (diff)
downloadvboot-b035e370a7ca315d1e4d249274893ef11bcac700.tar.gz
vboot2: Fix broken compatiblity check for gbb header 1.1
vboot2 supports only GBB header versions 1.1+. When the GBB header was rev'd to 1.2, this broke the compatibility check for 1.1. However, the test was written in such a way that wasn't detected. Fix the check and the test. BUG=chromium:415227 BRANCH=none TEST=VBOOT2=1 make runtests Change-Id: Ifeb1f21bf5cf3cc05d31ac7912693e090eb8fd5e Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/225110 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
-rw-r--r--firmware/2lib/2misc.c2
-rw-r--r--tests/vb2_misc_tests.c15
2 files changed, 10 insertions, 7 deletions
diff --git a/firmware/2lib/2misc.c b/firmware/2lib/2misc.c
index bcf5b362..a0ae60e0 100644
--- a/firmware/2lib/2misc.c
+++ b/firmware/2lib/2misc.c
@@ -50,7 +50,7 @@ int vb2_read_gbb_header(struct vb2_context *ctx, struct vb2_gbb_header *gbb)
return VB2_ERROR_GBB_VERSION;
/* Current code is not backwards-compatible to 1.0 headers */
- if (gbb->minor_version < VB2_GBB_MINOR_VER)
+ if (gbb->minor_version == 0)
return VB2_ERROR_GBB_TOO_OLD;
/*
diff --git a/tests/vb2_misc_tests.c b/tests/vb2_misc_tests.c
index 8c3fc333..c93cbefc 100644
--- a/tests/vb2_misc_tests.c
+++ b/tests/vb2_misc_tests.c
@@ -157,18 +157,21 @@ static void gbb_tests(void)
VB2_ERROR_GBB_MAGIC, "read gbb header bad magic");
gbb.signature[0]--;
- gbb.major_version++;
+ gbb.major_version = VB2_GBB_MAJOR_VER + 1;
TEST_EQ(vb2_read_gbb_header(&cc, &gbbdest),
VB2_ERROR_GBB_VERSION, "read gbb header major version");
- gbb.major_version--;
+ gbb.major_version = VB2_GBB_MAJOR_VER;
- gbb.minor_version++;
+ gbb.minor_version = VB2_GBB_MINOR_VER + 1;
TEST_SUCC(vb2_read_gbb_header(&cc, &gbbdest),
"read gbb header minor++");
- gbb.minor_version -= 2;
+ gbb.minor_version = 1;
+ TEST_SUCC(vb2_read_gbb_header(&cc, &gbbdest),
+ "read gbb header 1.1");
+ gbb.minor_version = 0;
TEST_EQ(vb2_read_gbb_header(&cc, &gbbdest),
- VB2_ERROR_GBB_TOO_OLD, "read gbb header minor version old");
- gbb.minor_version++;
+ VB2_ERROR_GBB_TOO_OLD, "read gbb header 1.0 fails");
+ gbb.minor_version = VB2_GBB_MINOR_VER;
gbb.header_size--;
TEST_EQ(vb2_read_gbb_header(&cc, &gbbdest),