KVM: x86: avoid vmalloc(0) in the KVM_SET_CPUID
authorPaolo Bonzini <[email protected]>
Wed, 1 Jun 2016 12:09:19 +0000 (14:09 +0200)
committerRadim Krčmář <[email protected]>
Thu, 2 Jun 2016 15:38:50 +0000 (17:38 +0200)
commit83676e923895adf2af392cfd36a05709950aaeef
tree5c462f932fa0d899a0b37c3187f76a8fd9b31ca1
parentb21629da120dd6145d14dbd6d028e1bba680a92b
KVM: x86: avoid vmalloc(0) in the KVM_SET_CPUID

This causes an ugly dmesg splat.  Beautified syzkaller testcase:

    #include <unistd.h>
    #include <sys/syscall.h>
    #include <sys/ioctl.h>
    #include <fcntl.h>
    #include <linux/kvm.h>

    long r[8];

    int main()
    {
        struct kvm_cpuid2 c = { 0 };
        r[2] = open("/dev/kvm", O_RDWR);
        r[3] = ioctl(r[2], KVM_CREATE_VM, 0);
        r[4] = ioctl(r[3], KVM_CREATE_VCPU, 0x8);
        r[7] = ioctl(r[4], KVM_SET_CPUID, &c);
        return 0;
    }

Reported-by: Dmitry Vyukov <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Signed-off-by: Radim Krčmář <[email protected]>
arch/x86/kvm/cpuid.c