]> xenbits.xensource.com Git - xen.git/commitdiff
x86: PHYSDEVOP_{prepare,release}_msix are privileged
authorJan Beulich <jbeulich@suse.com>
Fri, 24 Jan 2014 12:48:07 +0000 (13:48 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 24 Jan 2014 12:48:07 +0000 (13:48 +0100)
Yet this wasn't being enforced.

This is XSA-87.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 9c7e789a1b60b6114e0b1ef16dff95f03f532fb5
master date: 2014-01-24 13:41:36 +0100

xen/arch/x86/physdev.c

index 92d3a80343d6030794d31be80001b639127b1229..679e27050e376f31699147a5d77952981a53cc2f 100644 (file)
@@ -554,7 +554,9 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
     case PHYSDEVOP_release_msix: {
         struct physdev_pci_device dev;
 
-        if ( copy_from_guest(&dev, arg, 1) )
+        if ( !IS_PRIV(v->domain) )
+            ret = -EPERM;
+        else if ( copy_from_guest(&dev, arg, 1) )
             ret = -EFAULT;
         else if ( dev.seg )
             ret = -EOPNOTSUPP;