KVM: x86: avoid vmalloc(0) in the KVM_SET_CPUID
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 1 Jun 2016 12:09:22 +0000 (14:09 +0200)
committerRadim Krčmář <rkrcmar@redhat.com>
Thu, 2 Jun 2016 15:38:50 +0000 (17:38 +0200)
commitf8c1b85b2523da59c8c03ea94e9d0fac04155943
tree4d421bea0523fcdc0cfa80ad8a4df84128912505
parentc622a3c21ede892e370b56e1ceb9eb28f8bbda6b
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_irq_routing ir = { 0 };
        r[2] = open("/dev/kvm", O_RDWR);
        r[3] = ioctl(r[2], KVM_CREATE_VM, 0);
        r[4] = ioctl(r[3], KVM_SET_GSI_ROUTING, &ir);
        return 0;
    }

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
virt/kvm/kvm_main.c