summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Kitching <kitching@google.com>2019-06-12 12:32:27 +0800
committerCommit Bot <commit-bot@chromium.org>2019-06-13 19:46:01 +0000
commitde5b8dff95811ba0bbe27c7f5cb7bb0269eab761 (patch)
treeececbe1b1f97facef39cbd1cdcdfe97eb0c969df
parentd15663d4f594e2c82ec73570b2a6772e719c0c3f (diff)
downloadvboot-de5b8dff95811ba0bbe27c7f5cb7bb0269eab761.tar.gz
vboot: correct VB2_SECDATAK_SIZE constant to 13
This constant was incorrectly set to 14, whereas sizeof(vb2_secdatak) is 13. Update the constant its correct value, and add a test for each of secdata and secdatak to check the constant values. Previously, this constant was not used anywhere. The secdatak space is created and initialized in coreboot with a hard-coded (correct) size and initial value. So there should be no worry about devices out in the field with TPM secdatak size set to 14. BUG=b:124141368, chromium:972956 TEST=make clean && make runtests BRANCH=none Change-Id: I0a6072aef2de401bd3cd40ac3b002f754da19560 Signed-off-by: Joel Kitching <kitching@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1655049 Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Julius Werner <jwerner@chromium.org>
-rw-r--r--firmware/2lib/include/2constants.h2
-rw-r--r--tests/vb2_secdata_tests.c4
-rw-r--r--tests/vb2_secdatak_tests.c4
3 files changed, 9 insertions, 1 deletions
diff --git a/firmware/2lib/include/2constants.h b/firmware/2lib/include/2constants.h
index ef772ef6..76e7f22e 100644
--- a/firmware/2lib/include/2constants.h
+++ b/firmware/2lib/include/2constants.h
@@ -23,7 +23,7 @@
/* Size of secure data spaces used by vboot */
#define VB2_SECDATA_SIZE 10
-#define VB2_SECDATAK_SIZE 14
+#define VB2_SECDATAK_SIZE 13
/*
* Recommended size of work buffer for firmware verification stage.
diff --git a/tests/vb2_secdata_tests.c b/tests/vb2_secdata_tests.c
index 99d7788a..add99938 100644
--- a/tests/vb2_secdata_tests.c
+++ b/tests/vb2_secdata_tests.c
@@ -41,6 +41,10 @@ static void secdata_test(void)
};
uint32_t v = 1;
+ /* Check size constant */
+ TEST_EQ(VB2_SECDATA_SIZE, sizeof(struct vb2_secdata),
+ "Struct size constant");
+
/* Blank data is invalid */
memset(c.secdata, 0xa6, sizeof(c.secdata));
TEST_EQ(vb2api_secdata_check(&c),
diff --git a/tests/vb2_secdatak_tests.c b/tests/vb2_secdatak_tests.c
index 81eb0345..df68351a 100644
--- a/tests/vb2_secdatak_tests.c
+++ b/tests/vb2_secdatak_tests.c
@@ -42,6 +42,10 @@ static void secdatak_test(void)
};
uint32_t v = 1;
+ /* Check size constant */
+ TEST_EQ(VB2_SECDATAK_SIZE, sizeof(struct vb2_secdatak),
+ "Struct size constant");
+
/* Blank data is invalid */
memset(c.secdatak, 0xa6, sizeof(c.secdatak));
TEST_EQ(vb2api_secdatak_check(&c),