Re: [PATCH] x86/microcode: Change checksum to u32

From: Borislav Petkov
Date: Sat Feb 27 2016 - 17:29:41 EST


On Sat, Feb 27, 2016 at 06:23:29PM +0000, Chris Bainbridge wrote:
> /* calculate the checksum */
> orig_sum = 0;
> i = (MC_HEADER_SIZE + data_size) / DWSIZE;
> while (i--)
> orig_sum += ((int *)mc)[i];

Ok, since SDM says that all fields should be treated as unsigneds when
doing the checksum verification, that cast above should be (u32 *) too.

Also, the extended table signature should be fixed to use u32s too:

ext_tablep = (int *)ext_header;
i = ext_table_size / sizeof(u32);
while (i--)
ext_table_sum += ext_tablep[i];
...

Care to complete your patch please?

Thanks.

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.