From: Andrew Cooper Date: Mon, 20 Jan 2014 08:48:11 +0000 (+0100) Subject: common/sysctl: Don't leak status in SYSCTL_page_offline_op X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~5659 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=efd8ff0a04740a698b2b8b2b9adccd639e0fa6c9;p=xen.git common/sysctl: Don't leak status in SYSCTL_page_offline_op In addition, 'copyback' should be cleared even in the error case. Also fix the indentation of the arguments to copy_to_guest() to help clarify that the 'ret = -EFAULT' is not part of the condition. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich Acked-by: Keir Fraser --- diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c index 117e095a35..0cb6ee15fb 100644 --- a/xen/common/sysctl.c +++ b/xen/common/sysctl.c @@ -230,12 +230,9 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl) } if ( copy_to_guest( - op->u.page_offline.status, status, - op->u.page_offline.end - op->u.page_offline.start + 1) ) - { + op->u.page_offline.status, status, + op->u.page_offline.end - op->u.page_offline.start + 1) ) ret = -EFAULT; - break; - } xfree(status); copyback = 0;