]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
KVM: x86: disallow KVM_{SET,GET}_LAPIC without allocated in-kernel lapic
authorMarcelo Tosatti <mtosatti@redhat.com>
Thu, 29 Oct 2009 15:44:16 +0000 (13:44 -0200)
committerAvi Kivity <avi@redhat.com>
Mon, 2 Nov 2009 09:52:58 +0000 (11:52 +0200)
Otherwise kvm might attempt to dereference a NULL pointer.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/x86.c

index 93bcd1169f7eef53d52b3dffd22f085322638ec4..1cc51ca9adb0ecd6cb1951c874a0167d61753f5f 100644 (file)
@@ -1893,6 +1893,9 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
 
        switch (ioctl) {
        case KVM_GET_LAPIC: {
+               r = -EINVAL;
+               if (!vcpu->arch.apic)
+                       goto out;
                lapic = kzalloc(sizeof(struct kvm_lapic_state), GFP_KERNEL);
 
                r = -ENOMEM;
@@ -1908,6 +1911,9 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
                break;
        }
        case KVM_SET_LAPIC: {
+               r = -EINVAL;
+               if (!vcpu->arch.apic)
+                       goto out;
                lapic = kmalloc(sizeof(struct kvm_lapic_state), GFP_KERNEL);
                r = -ENOMEM;
                if (!lapic)