summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/lib/tpm_lite/tlcl.c4
-rw-r--r--tests/tlcl_tests.c1
2 files changed, 4 insertions, 1 deletions
diff --git a/firmware/lib/tpm_lite/tlcl.c b/firmware/lib/tpm_lite/tlcl.c
index b8d83335..c03e8695 100644
--- a/firmware/lib/tpm_lite/tlcl.c
+++ b/firmware/lib/tpm_lite/tlcl.c
@@ -1355,7 +1355,9 @@ uint32_t TlclReadDelegationFamilyTable(TPM_FAMILY_TABLE_ENTRY *table,
return TPM_E_INVALID_RESPONSE;
}
- uint32_t table_entries = table_bytes / sizeof(TPM_FAMILY_TABLE_ENTRY);
+ const uint32_t table_entry_size =
+ sizeof(uint16_t) + sizeof(uint8_t) + 3 * sizeof(uint32_t);
+ uint32_t table_entries = table_bytes / table_entry_size;
int i;
for (i = 0; i < table_entries; ++i) {
if (i >= *table_size || !table) {
diff --git a/tests/tlcl_tests.c b/tests/tlcl_tests.c
index 385350dd..00eae615 100644
--- a/tests/tlcl_tests.c
+++ b/tests/tlcl_tests.c
@@ -1168,6 +1168,7 @@ int main(void)
IFXFieldUpgradeInfoTest();
ReadPubekTest();
TakeOwnershipTest();
+ ReadDelegationFamilyTableTest();
return gTestSuccess ? 0 : 255;
}