aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Deegan <Tim.Deegan@citrix.com>2011-03-14 17:00:34 +0000
committerTim Deegan <Tim.Deegan@citrix.com>2011-03-14 17:00:34 +0000
commit37f93e9a115551536436e1f99b371afb1740fda1 (patch)
tree2b9826216959c2d2f4e9981da30ca4fcc0296498
parent61332af12a9b8ccb5b8ce47589145c671a496557 (diff)
downloadxen-37f93e9a115551536436e1f99b371afb1740fda1.tar.gz
xen-37f93e9a115551536436e1f99b371afb1740fda1.tar.bz2
xen-37f93e9a115551536436e1f99b371afb1740fda1.zip
x86_64: fix error checking in arch_set_info_guest()
Cannot specify user mode execution without specifying user-mode pagetables. Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com> Acked-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 23034:c79aae866ad8 xen-unstable date: Mon Mar 14 16:59:49 2011 +0000
-rw-r--r--xen/arch/x86/domain.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index a024e198e9..5791925675 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -826,6 +826,11 @@ int arch_set_info_guest(
v->arch.guest_table_user = pagetable_from_pfn(cr3_pfn);
}
+ else if ( !(flags & VGCF_in_kernel) )
+ {
+ destroy_gdt(v);
+ return -EINVAL;
+ }
}
else
{