KVM: x86: don't forget vcpu_put() in kvm_arch_vcpu_ioctl_set_sregs()
authorEric Biggers <ebiggers@google.com>
Thu, 21 Dec 2017 00:24:27 +0000 (16:24 -0800)
committerRadim Krčmář <rkrcmar@redhat.com>
Fri, 2 Feb 2018 16:49:55 +0000 (17:49 +0100)
Due to a bad merge resolution between commit f29810335965 ("KVM/x86:
Check input paging mode when cs.l is set") and commit b4ef9d4e8cb8
("KVM: Move vcpu_load to arch-specific kvm_arch_vcpu_ioctl_set_sregs"),
there is a case in kvm_arch_vcpu_ioctl_set_sregs() where vcpu_put() is
not called after vcpu_get().  Fix it.

Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
arch/x86/kvm/x86.c

index 0e27ee5..07d1c7f 100644 (file)
@@ -7706,7 +7706,7 @@ int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu,
                goto out;
 
        if (kvm_valid_sregs(vcpu, sregs))
-               return -EINVAL;
+               goto out;
 
        apic_base_msr.data = sregs->apic_base;
        apic_base_msr.host_initiated = true;