diff options
author | Gregory Price <gourry@gourry.net> | 2024-09-13 19:19:54 -0400 |
---|---|---|
committer | Ard Biesheuvel <ardb@kernel.org> | 2024-10-15 20:27:30 +0200 |
commit | 63971b0f51faff0ff844a85d297e27861555c328 (patch) | |
tree | 58a591702feaa240ca30ba75253c868aa43fe78f | |
parent | a066397e8ed1036e8b959050ab6e830ee90d9f58 (diff) | |
download | linux-63971b0f51faff0ff844a85d297e27861555c328.tar.gz linux-63971b0f51faff0ff844a85d297e27861555c328.tar.bz2 linux-63971b0f51faff0ff844a85d297e27861555c328.zip |
libstub,tpm: do not ignore failure case when reading final event log
Current code fails to check for an error case when reading events
from final event log to calculate offsets. Check the error case,
and break early because all subsequent calls will also fail.
Signed-off-by: Gregory Price <gourry@gourry.net>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
-rw-r--r-- | drivers/firmware/efi/libstub/tpm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/firmware/efi/libstub/tpm.c b/drivers/firmware/efi/libstub/tpm.c index d31ea3f351d8..a5c6c4f163fc 100644 --- a/drivers/firmware/efi/libstub/tpm.c +++ b/drivers/firmware/efi/libstub/tpm.c @@ -124,6 +124,9 @@ 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 calc fails this is a malformed log */ + if (!event_size) + break; final_events_size += event_size; i--; } |