2015-06-04 08:19:12

by Paolo Bonzini

[permalink] [raw]
Subject: [PATCH] kvm: x86: fix kvm_apic_has_events to check for NULL pointer

Malicious (or egregiously buggy) userspace can trigger it, but it
should never happen in normal operation.

Signed-off-by: Paolo Bonzini <[email protected]>
---
arch/x86/kvm/lapic.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
index 71b150cae5f9..9d8fcde52027 100644
--- a/arch/x86/kvm/lapic.h
+++ b/arch/x86/kvm/lapic.h
@@ -150,7 +150,7 @@ static inline bool kvm_apic_vid_enabled(struct kvm *kvm)

static inline bool kvm_apic_has_events(struct kvm_vcpu *vcpu)
{
- return vcpu->arch.apic->pending_events;
+ return kvm_vcpu_has_lapic(vcpu) && vcpu->arch.apic->pending_events;
}

static inline bool kvm_lowest_prio_delivery(struct kvm_lapic_irq *irq)
--
1.8.3.1


2015-06-12 14:10:56

by Josh Boyer

[permalink] [raw]
Subject: Re: [PATCH] kvm: x86: fix kvm_apic_has_events to check for NULL pointer

On Thu, Jun 4, 2015 at 4:18 AM, Paolo Bonzini <[email protected]> wrote:
> Malicious (or egregiously buggy) userspace can trigger it, but it
> should never happen in normal operation.
>
> Signed-off-by: Paolo Bonzini <[email protected]>

This should probably be backported to the stable trees, right?

josh

> ---
> arch/x86/kvm/lapic.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
> index 71b150cae5f9..9d8fcde52027 100644
> --- a/arch/x86/kvm/lapic.h
> +++ b/arch/x86/kvm/lapic.h
> @@ -150,7 +150,7 @@ static inline bool kvm_apic_vid_enabled(struct kvm *kvm)
>
> static inline bool kvm_apic_has_events(struct kvm_vcpu *vcpu)
> {
> - return vcpu->arch.apic->pending_events;
> + return kvm_vcpu_has_lapic(vcpu) && vcpu->arch.apic->pending_events;
> }
>
> static inline bool kvm_lowest_prio_delivery(struct kvm_lapic_irq *irq)
> --
> 1.8.3.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/