x86/shim: copy back the result of EVTCHNOP_status
authorRoger Pau Monné <roger.pau@citrix.com>
Mon, 25 Nov 2019 15:20:17 +0000 (16:20 +0100)
committerJan Beulich <jbeulich@suse.com>
Mon, 25 Nov 2019 15:20:17 +0000 (16:20 +0100)
The event channel data was not copied back to guest memory, fix this
by doing the copy.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Wei Liu <wl@xen.org>
master commit: 0f45bbbc404e2d1257476f9caa6644c209ec2c90
master date: 2019-11-01 10:48:04 +0000

xen/arch/x86/pv/shim.c

index 1299112ce038b2fd8f3ac1e86bbfaaefdc8f0e6d..d4146fe2342dec54215fac4d12947da3d8f58e47 100644 (file)
@@ -470,6 +470,9 @@ static long pv_shim_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         else
             rc = xen_hypercall_event_channel_op(EVTCHNOP_status, &status);
 
+        if ( !rc && __copy_to_guest(arg, &status, 1) )
+            rc = -EFAULT;
+
         break;
     }