[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH for-4.8] x86/emul: Reject LGDT/LIDT attempts with non-canonical base addresses



On 02/11/16 15:42, Jan Beulich wrote:
>>>> On 02.11.16 at 15:52, <andrew.cooper3@xxxxxxxxxx> wrote:
>> No sane OS would deliberately try this, but make Xen's emulation match real
>> hardware by delivering #GP(0), rather than suffering a VMEntry failure.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
> albeit ...
>
>> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
>> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
>> @@ -4443,6 +4443,8 @@ x86_emulate(
>>                   (rc = read_ulong(ea.mem.seg, ea.mem.off+2,
>>                                    &base, mode_64bit() ? 8 : 4, ctxt, ops)) )
>>                  goto done;
>> +            generate_exception_if(mode_64bit() &&
>> +                                  !is_canonical_address(base), EXC_GP, 0);
> ... I don't think the mode_64bit() part is needed.

True - as we explicitly zero sreg to start with, the canonical base
check is safe in all modes.  I will drop it from v2.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.