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

[Xen-changelog] [xen-4.2-testing] x86: fix assertion in get_page_type()


  • To: xen-changelog@xxxxxxxxxxxxxxxxxxx
  • From: Xen patchbot-4.2-testing <patchbot@xxxxxxx>
  • Date: Mon, 07 Jan 2013 23:44:09 +0000
  • Delivery-date: Mon, 07 Jan 2013 23:44:27 +0000
  • List-id: "Change log for Mercurial \(receive only\)" <xen-changelog.lists.xen.org>

# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxx>
# Date 1357565076 -3600
# Node ID 7dad27b2bcc7ec42c6f76b04c3a5a94bc6b49a0f
# Parent  5acb5967d718c9ff5a15ce7462b58036c8d3afc8
x86: fix assertion in get_page_type()

c/s 22998:e9fab50d7b61 (and immediately following ones) made it
possible that __get_page_type() returns other than -EINVAL, in
particular -EBUSY. Consequently, the assertion in get_page_type()
should check for only the return values we absolutely don't expect to
see there.

This is XSA-37 / CVE-2013-0154.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
xen-unstable changeset: 26333:e1facbde56ff
xen-unstable date: Mon Jan  7 13:20:26 UTC 2013
---


diff -r 5acb5967d718 -r 7dad27b2bcc7 xen/arch/x86/mm.c
--- a/xen/arch/x86/mm.c Wed Dec 19 12:58:07 2012 +0100
+++ b/xen/arch/x86/mm.c Mon Jan 07 14:24:36 2013 +0100
@@ -2586,7 +2586,7 @@ int get_page_type(struct page_info *page
     int rc = __get_page_type(page, type, 0);
     if ( likely(rc == 0) )
         return 1;
-    ASSERT(rc == -EINVAL);
+    ASSERT(rc != -EINTR && rc != -EAGAIN);
     return 0;
 }
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
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®.