[SLOF] [PATCH v2 2/3] tcgbios: Fix the vendorInfoSize to be of type uint8_t

Stefan Berger stefanb at linux.ibm.com
Sat May 9 05:36:03 AEST 2020


On 5/7/20 8:55 PM, Alexey Kardashevskiy wrote:
>
> On 30/03/2020 23:10, Stefan Berger wrote:
>> From: Stefan Berger <stefanb at linux.ibm.com>
>>
>> The vendorInfoSize is a uint8_t rather than a uint32_t.
>
> What is the implication of this bug? Do we need to backport it to stable
> qemu 5.0.x?


No, we set the vendorInfoSize to '0' and it's the last field in the 
structure, so it doesn't matter. The structure it is embedded in has its 
own size indicator that is 3 bytes too large but from what I have seen 
with clients tools so far, they don't care.

    Stefan


>
>
>> Signed-off-by: Stefan Berger <stefanb at linux.ibm.com>
>> ---
>>   lib/libtpm/tcgbios.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/lib/libtpm/tcgbios.c b/lib/libtpm/tcgbios.c
>> index 81f351c..c0e1b45 100644
>> --- a/lib/libtpm/tcgbios.c
>> +++ b/lib/libtpm/tcgbios.c
>> @@ -647,7 +647,7 @@ static int tpm20_write_EfiSpecIdEventStruct(void)
>>   	struct tpms_pcr_selection *sel;
>>   	void *nsel, *end;
>>   	int event_size;
>> -	uint32_t *vendorInfoSize;
>> +	uint8_t *vendorInfoSize;
>>   	struct tpm_log_entry le = {
>>   		.hdr.eventtype = cpu_to_log32(EV_NO_ACTION),
>>   	};
>> @@ -682,7 +682,7 @@ static int tpm20_write_EfiSpecIdEventStruct(void)
>>   
>>   		event_size = offset_of(struct TCG_EfiSpecIdEventStruct,
>>   				       digestSizes[count+1]);
>> -		if (event_size > sizeof(event) - sizeof(uint32_t)) {
>> +		if (event_size > sizeof(event) - sizeof(uint8_t)) {
>>   			dprintf("EfiSpecIdEventStruct pad too small\n");
>>   			return -1;
>>   		}
>>



More information about the SLOF mailing list