mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
KVM: Fix buffer overflow in kvm_set_irq()
commit f2ebd422f7
upstream.
kvm_set_irq() has an internal buffer of three irq routing entries, allowing
connecting a GSI to three IRQ chips or on MSI. However setup_routing_entry()
does not properly enforce this, allowing three irqchip routes followed by
an MSI route to overflow the buffer.
Fix by ensuring that an MSI entry is added to an empty list.
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Cc: Li Zefan <lizefan@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
230a0c3b58
commit
ec90b61137
1 changed files with 1 additions and 0 deletions
|
@ -318,6 +318,7 @@ static int setup_routing_entry(struct kvm_irq_routing_table *rt,
|
||||||
*/
|
*/
|
||||||
hlist_for_each_entry(ei, n, &rt->map[ue->gsi], link)
|
hlist_for_each_entry(ei, n, &rt->map[ue->gsi], link)
|
||||||
if (ei->type == KVM_IRQ_ROUTING_MSI ||
|
if (ei->type == KVM_IRQ_ROUTING_MSI ||
|
||||||
|
ue->type == KVM_IRQ_ROUTING_MSI ||
|
||||||
ue->u.irqchip.irqchip == ei->irqchip.irqchip)
|
ue->u.irqchip.irqchip == ei->irqchip.irqchip)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue