This check is missing from the compat version when compared to the non-compat version.
Signed-off-by: Roger Pau Monné <roger....@citrix.com> Cc: Ian Campbell <ian.campb...@citrix.com> Cc: Jan Beulich <jbeul...@suse.com> Cc: Tim Deegan <t...@xen.org> Cc: Andrew Cooper <andrew.coop...@citrix.com> --- Changes since v1: - Moved the declaration of dummy_vcpu_info to the header where vcpu_info_t is defined. --- xen/common/compat/domain.c | 3 +++ xen/common/domain.c | 2 +- xen/include/xen/shared.h | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/xen/common/compat/domain.c b/xen/common/compat/domain.c index 3ca4ef7..157570a 100644 --- a/xen/common/compat/domain.c +++ b/xen/common/compat/domain.c @@ -38,6 +38,9 @@ int compat_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) ar { struct compat_vcpu_guest_context *cmp_ctxt; + if ( v->vcpu_info == &dummy_vcpu_info ) + return -EINVAL; + if ( (cmp_ctxt = xmalloc(struct compat_vcpu_guest_context)) == NULL ) { rc = -ENOMEM; diff --git a/xen/common/domain.c b/xen/common/domain.c index cda60a9..cec0dcf 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -70,7 +70,7 @@ integer_param("hardware_dom", hardware_domid); struct vcpu *idle_vcpu[NR_CPUS] __read_mostly; -static vcpu_info_t dummy_vcpu_info; +vcpu_info_t dummy_vcpu_info; static void __domain_finalise_shutdown(struct domain *d) { diff --git a/xen/include/xen/shared.h b/xen/include/xen/shared.h index 3f5b283..a411a8a 100644 --- a/xen/include/xen/shared.h +++ b/xen/include/xen/shared.h @@ -41,6 +41,8 @@ typedef struct vcpu_info vcpu_info_t; #endif +extern vcpu_info_t dummy_vcpu_info; + #define shared_info(d, field) __shared_info(d, (d)->shared_info, field) #define vcpu_info(v, field) __vcpu_info(v, (v)->vcpu_info, field) -- 1.9.5 (Apple Git-50.3) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel