Messages in this thread | | | Subject | Re: [PATCH v5 2/7] tpm: remove definition of TPM2_ACTIVE_PCR_BANKS | From | Roberto Sassu <> | Date | Wed, 28 Nov 2018 13:17:22 +0100 |
| |
On 11/16/2018 2:38 PM, Jarkko Sakkinen wrote: > On Wed, Nov 14, 2018 at 04:31:03PM +0100, Roberto Sassu wrote: >> tcg_efi_specid_event and tcg_pcr_event2 declaration contains static arrays >> for a list of hash algorithms used for event logs and event log digests. >> >> However, according to TCG EFI Protocol Specification, these arrays have >> variable sizes. Setting the array size to zero or 3 does not make any >> difference, because the parser has to adjust the offset depending on the >> actual array size to access structure members after the static arrays. >> >> Thus, this patch removes the declaration of TPM2_ACTIVE_PCR_BANKS and sets >> the array size to zero. >> >> Fixes: 4d23cc323cdb ("tpm: add securityfs support for TPM 2.0 firmware >> event log") >> >> Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com> >> --- >> include/linux/tpm_eventlog.h | 5 ++--- >> 1 file changed, 2 insertions(+), 3 deletions(-) >> >> diff --git a/include/linux/tpm_eventlog.h b/include/linux/tpm_eventlog.h >> index 20d9da77fc11..3d5d162f09cc 100644 >> --- a/include/linux/tpm_eventlog.h >> +++ b/include/linux/tpm_eventlog.h >> @@ -8,7 +8,6 @@ >> #define TCG_EVENT_NAME_LEN_MAX 255 >> #define MAX_TEXT_EVENT 1000 /* Max event string length */ >> #define ACPI_TCPA_SIG "TCPA" /* 0x41504354 /'TCPA' */ >> -#define TPM2_ACTIVE_PCR_BANKS 3 >> >> #define EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 0x1 >> #define EFI_TCG2_EVENT_LOG_FORMAT_TCG_2 0x2 >> @@ -90,7 +89,7 @@ struct tcg_efi_specid_event { >> u8 spec_errata; >> u8 uintnsize; >> u32 num_algs; >> - struct tcg_efi_specid_event_algs digest_sizes[TPM2_ACTIVE_PCR_BANKS]; >> + struct tcg_efi_specid_event_algs digest_sizes[0]; >> u8 vendor_info_size; >> u8 vendor_info[0]; >> } __packed; >> @@ -117,7 +116,7 @@ struct tcg_pcr_event2 { >> u32 pcr_idx; >> u32 event_type; >> u32 count; >> - struct tpm2_digest digests[TPM2_ACTIVE_PCR_BANKS]; >> + struct tpm2_digest digests[0]; >> struct tcg_event_field event; >> } __packed; >> >> -- >> 2.17.1 >> > > NAK for the same reason as last time.
I added this comment to include/linux/tpm_eventlog.h:
/* * http://www.trustedcomputinggroup.org/tcg-efi-protocol-specification/ * * Set the size of 'digest_sizes' and 'digests', members of tcg_efi_specid_event * and tcg_pcr_event2, to zero. Structures with variable-sized arrays placed * midway are not suitable for type casting. */
Is it ok?
Thanks
Roberto
> /Jarkko >
-- HUAWEI TECHNOLOGIES Duesseldorf GmbH, HRB 56063 Managing Director: Bo PENG, Jian LI, Yanli SHI
| |