[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging-4.18] xen/ucode: Make Intel's microcode_sanity_check() stricter
commit a897560155a58b36bec721eb3b994a62a0432996 Author: Demi Marie Obenour <demi@xxxxxxxxxxxxxxxxxxxxxx> AuthorDate: Tue Oct 29 16:35:52 2024 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Tue Oct 29 16:35:52 2024 +0100 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@xxxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> master commit: 8752ad83e79754f8109457cff796e5f86f644348 master date: 2024-09-24 18:57:38 +0100 --- xen/arch/x86/cpu/microcode/intel.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/cpu/microcode/intel.c b/xen/arch/x86/cpu/microcode/intel.c index a2d88e3ac0..bd15236709 100644 --- a/xen/arch/x86/cpu/microcode/intel.c +++ b/xen/arch/x86/cpu/microcode/intel.c @@ -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"); -- generated by git-patchbot for /home/xen/git/xen.git#staging-4.18
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |