KVM: x86: fix OOPS after invalid KVM_SET_DEBUGREGS
[firefly-linux-kernel-4.4.55.git] / arch / x86 / kvm / x86.c
index 605cea75eb0d1862f83e885af1efa55c5582707c..be222666b1c2554c18f179766cc72c98c1d9b2d8 100644 (file)
@@ -3014,6 +3014,11 @@ static int kvm_vcpu_ioctl_x86_set_debugregs(struct kvm_vcpu *vcpu,
        if (dbgregs->flags)
                return -EINVAL;
 
+       if (dbgregs->dr6 & ~0xffffffffull)
+               return -EINVAL;
+       if (dbgregs->dr7 & ~0xffffffffull)
+               return -EINVAL;
+
        memcpy(vcpu->arch.db, dbgregs->db, sizeof(vcpu->arch.db));
        kvm_update_dr0123(vcpu);
        vcpu->arch.dr6 = dbgregs->dr6;