]> xenbits.xensource.com Git - people/dariof/xen.git/commitdiff
x86/levelling: Avoid NULL pointer dereference
authorAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 25 Sep 2017 16:24:46 +0000 (17:24 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 26 Sep 2017 09:33:35 +0000 (10:33 +0100)
Coverity points out that next is indeed NULL at times.  Only try to read the
.cpuid_faulting field when we sure that next isn't NULL.

Fixes e7a370733bd "x86: replace arch_vcpu::cpuid_faulting with msr_vcpu_policy"

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/cpu/intel.c

index 218236d0944b993faccd6495089d08d1423828ff..ac932e5b38255eb7a37c01b303bcd4d5a8bfed3d 100644 (file)
@@ -156,7 +156,6 @@ static void intel_ctxt_switch_levelling(const struct vcpu *next)
        struct cpuidmasks *these_masks = &this_cpu(cpuidmasks);
        const struct domain *nextd = next ? next->domain : NULL;
        const struct cpuidmasks *masks;
-       const struct msr_vcpu_policy *vp = next->arch.msr;
 
        if (cpu_has_cpuid_faulting) {
                /*
@@ -177,7 +176,7 @@ static void intel_ctxt_switch_levelling(const struct vcpu *next)
                 */
                set_cpuid_faulting(nextd && !is_control_domain(nextd) &&
                                   (is_pv_domain(nextd) ||
-                                   vp->misc_features_enables.cpuid_faulting));
+                                   next->arch.msr->misc_features_enables.cpuid_faulting));
                return;
        }