[PATCH 6/6] libstub,tpm: do not ignore failure case when reading final event log

Gregory Price
2024-09-06T20:28:27Z

Current code fails to check for an error case when reading events from
final event log to calculate offsets. Check the error case, report the
error, and break early because all subsequent calls will also fail.

Signed-off-by: Gregory Price <gourry@gourry.net>
---
drivers/firmware/efi/libstub/tpm.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/firmware/efi/libstub/tpm.c b/drivers/firmware/efi/libstub/tpm.c
index 4f9f0e049a7a..c71b0d3e66d2 100644
--- a/drivers/firmware/efi/libstub/tpm.c
+++ b/drivers/firmware/efi/libstub/tpm.c
@@ -124,6 +124,10 @@ static void efi_retrieve_tcg2_eventlog(int version, efi_physical_addr_t log_loca
event_size = __calc_tpm2_event_size(header,
(void *)(long)log_location,
false);
+ if (!event_size) {
+ efi_err("Invalid TPM Final Event Log Entry\n");
+ break;
+ }
final_events_size += event_size;
i--;
}
--
2.43.0