[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-3.1-testing] x86_emulate: Certain opcodes are only valid with a memory operand.
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1200005885 0 # Node ID f479c2af0825f79b5082779c7f09c4cdd204993c # Parent cba088e098d4d4a1dbcfe9603b720b8701dffa61 x86_emulate: Certain opcodes are only valid with a memory operand. Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx> xen-unstable changeset: 16703:c86025f569cb xen-unstable date: Thu Jan 10 22:52:40 2008 +0000 --- xen/arch/x86/x86_emulate.c | 2 ++ 1 files changed, 2 insertions(+) diff -r cba088e098d4 -r f479c2af0825 xen/arch/x86/x86_emulate.c --- a/xen/arch/x86/x86_emulate.c Thu Jan 10 15:31:27 2008 +0000 +++ b/xen/arch/x86/x86_emulate.c Thu Jan 10 22:58:05 2008 +0000 @@ -2348,6 +2348,7 @@ x86_emulate( { unsigned long old_lo, old_hi; generate_exception_if((modrm_reg & 7) != 1, EXC_UD); + generate_exception_if(ea.type != OP_MEM, EXC_UD); if ( (rc = ops->read(ea.mem.seg, ea.mem.off+0, &old_lo, 4, ctxt)) || (rc = ops->read(ea.mem.seg, ea.mem.off+4, &old_hi, 4, ctxt)) ) goto done; @@ -2375,6 +2376,7 @@ x86_emulate( { unsigned long old, new; generate_exception_if((modrm_reg & 7) != 1, EXC_UD); + generate_exception_if(ea.type != OP_MEM, EXC_UD); if ( (rc = ops->read(ea.mem.seg, ea.mem.off, &old, 8, ctxt)) != 0 ) goto done; if ( ((uint32_t)(old>>0) != (uint32_t)_regs.eax) || _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |