]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
hw/audio/cs4231a: fix assertion error in isa_bus_get_irq
authorZheng Huang <hz1624917200@gmail.com>
Fri, 9 May 2025 11:21:35 +0000 (19:21 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 12 May 2025 15:48:32 +0000 (17:48 +0200)
This patch fixes an assertion error in isa_bus_get_irq() in
/hw/isa/isa-bus.c by adding a constraint to the irq property.
Patch v1 misused ISA_NUM_IRQS, pls ignore that.

Signed-off-by: Zheng Huang <hz1624917200@gmail.com>
Link: https://lore.kernel.org/r/6d228069-e38f-4c46-813f-edcccc5c47e4@gmail.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/audio/cs4231a.c

index 06b44da86905ef97ffac92f23a5d400939aad467..eb9a45805b758ffbf731f0261b640d28e3f96284 100644 (file)
@@ -682,6 +682,10 @@ static void cs4231a_realizefn (DeviceState *dev, Error **errp)
         return;
     }
 
+    if (s->irq >= ISA_NUM_IRQS) {
+        error_setg(errp, "Invalid IRQ %d (max %d)", s->irq, ISA_NUM_IRQS - 1);
+        return;
+    }
     s->pic = isa_bus_get_irq(bus, s->irq);
     k = ISADMA_GET_CLASS(s->isa_dma);
     k->register_channel(s->isa_dma, s->dma, cs_dma_read, s);