mirror of https://gitee.com/openkylin/qemu.git
pci: Assert irqnum is between 0 and bus->nirqs in pci_bus_change_irq_level
These assertions similar to those in the adjacent pci_bus_get_irq_level() function ensure that irqnum lies within the valid PCI bus IRQ range. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Message-Id: <20201011082022.3016-1-mark.cave-ayland@ilande.co.uk> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20201024203900.3619498-3-f4bug@amsat.org> Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
b06fe3e703
commit
459ca8bfa4
|
@ -250,6 +250,8 @@ static inline void pci_set_irq_state(PCIDevice *d, int irq_num, int level)
|
||||||
|
|
||||||
static void pci_bus_change_irq_level(PCIBus *bus, int irq_num, int change)
|
static void pci_bus_change_irq_level(PCIBus *bus, int irq_num, int change)
|
||||||
{
|
{
|
||||||
|
assert(irq_num >= 0);
|
||||||
|
assert(irq_num < bus->nirq);
|
||||||
bus->irq_count[irq_num] += change;
|
bus->irq_count[irq_num] += change;
|
||||||
bus->set_irq(bus->irq_opaque, irq_num, bus->irq_count[irq_num] != 0);
|
bus->set_irq(bus->irq_opaque, irq_num, bus->irq_count[irq_num] != 0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue