xen/ucode: Make Intel's microcode_sanity_check() stricter

The SDM states that data size must be a multiple of 4, but Xen doesn't check
this propery.

This is liable to cause a later failures, but should be checked explicitly.

Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
master commit: 8752ad83e7
master date: 2024-09-24 18:57:38 +0100
This commit is contained in:
Demi Marie Obenour authored and Jan Beulich committed 2024-10-29 16:25:07 +01:00
1 parent 2c61ab4071
commit 84d8fbd883
1 file changed
+5 -2
+5 -2
View File
@@ -155,10 +155,13 @@ static int microcode_sanity_check(const struct microcode_patch *patch)
uint32_t sum;
/*
* Total size must be a multiple of 1024 bytes. Data size and the header
* must fit within it.
* The SDM states:
* - Data size must be a multiple of 4.
* - Total size must be a multiple of 1024 bytes. Data size and the
* header must fit within it.
*/
if ( (total_size & 1023) ||
(data_size & 3) ||
data_size > (total_size - MC_HEADER_SIZE) )
{
printk(XENLOG_WARNING "microcode: Bad size\n");
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.