summaryrefslogtreecommitdiff
path: root/sysutils/xenkernel3/patches/patch-dc
blob: 4d12970a0687f889195cacd27c7fe3c9439d9b06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$NetBSD: patch-dc,v 1.1.2.2 2010/12/10 10:48:46 tron Exp $

Fix for CVE-2010-4255, from the xen-devel list and adapted for Xen 3.1

--- xen/arch/x86/traps.c.orig	2010-12-07 12:53:20.000000000 +0100
+++ xen/arch/x86/traps.c	2010-12-07 13:11:36.000000000 +0100
@@ -950,7 +950,8 @@
     {
         if ( paging_mode_external(d) && guest_mode(regs) )
             return paging_fault(addr, regs);
-        if ( (addr >= GDT_LDT_VIRT_START) && (addr < GDT_LDT_VIRT_END) )
+        if ( !(regs->error_code & PFEC_user_mode) &&
+	     (addr >= GDT_LDT_VIRT_START) && (addr < GDT_LDT_VIRT_END) )
             return handle_gdt_ldt_mapping_fault(
                 addr - GDT_LDT_VIRT_START, regs);
         return 0;