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

[Xen-changelog] [xen-3.4-testing] Fix #GPF injection into compat guests in vm86 code



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1277918773 -3600
# Node ID 14709d196e4389f7b9508df71d54277844550868
# Parent  79a6ae5fe5b9e4a08c6b826548ec49410fb3e59a
Fix #GPF injection into compat guests in vm86 code

not to let the guest disable interrupts in the real EFLAGS.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx
xen-unstable changeset:   21700:fae04060a4f4
xen-unstable date:        Wed Jun 30 18:12:43 2010 +0100
---
 xen/arch/x86/x86_64/compat/traps.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff -r 79a6ae5fe5b9 -r 14709d196e43 xen/arch/x86/x86_64/compat/traps.c
--- a/xen/arch/x86/x86_64/compat/traps.c        Thu Jun 10 10:10:10 2010 +0100
+++ b/xen/arch/x86/x86_64/compat/traps.c        Wed Jun 30 18:26:13 2010 +0100
@@ -101,9 +101,8 @@ unsigned int compat_iret(void)
         ti = &v->arch.guest_context.trap_ctxt[13];
         if ( TI_GET_IF(ti) )
             eflags &= ~X86_EFLAGS_IF;
-        regs->_eflags = eflags & ~(X86_EFLAGS_VM|X86_EFLAGS_RF|
-                                   X86_EFLAGS_NT|X86_EFLAGS_TF);
-
+        regs->_eflags &= ~(X86_EFLAGS_VM|X86_EFLAGS_RF|
+                           X86_EFLAGS_NT|X86_EFLAGS_TF);
         if ( unlikely(__put_user(0, (u32 *)regs->rsp)) )
             goto exit_and_crash;
         regs->_eip = ti->address;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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