Commit
df29d03f1d ("libxc/x86: avoid certain overflows in CPUID APIC ID
adjustments" introduced a one bit too narrow mask when checking whether
multiplying by 1 (in particular in leaf 1) would result in overflow.
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
* - incrementing ApicIdCoreSize when it's zero (which changes the
* meaning of bits 7:0).
*/
- if ( (regs[2] & 0x7fu) < 0x7fu )
+ if ( (regs[2] & 0xffu) < 0x7fu )
{
if ( (regs[2] & 0xf000u) && (regs[2] & 0xf000u) != 0xf000u )
regs[2] = ((regs[2] + 0x1000u) & 0xf000u) | (regs[2] & 0xffu);