diff options
author | Tim Deegan <Tim.Deegan@citrix.com> | 2011-03-14 17:00:58 +0000 |
---|---|---|
committer | Tim Deegan <Tim.Deegan@citrix.com> | 2011-03-14 17:00:58 +0000 |
commit | 6f13d1ec5bbd83f174c9a0081d36a54aac597caa (patch) | |
tree | 1ecc3870294d285a7355e8b2577d38fbdeb88c80 | |
parent | c0083e85403a60b874b4bca66d51da296351f8ca (diff) | |
download | xen-6f13d1ec5bbd83f174c9a0081d36a54aac597caa.tar.gz xen-6f13d1ec5bbd83f174c9a0081d36a54aac597caa.tar.bz2 xen-6f13d1ec5bbd83f174c9a0081d36a54aac597caa.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.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 3143c62b9b..2fd584d6c1 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -780,6 +780,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 { |