Commit e5f6fafcd9 for qemu.org
commit e5f6fafcd92a71aca27ffcfa3980f96ea5a512c4
Author: Peter Maydell <peter.maydell@linaro.org>
Date: Tue May 12 10:38:56 2026 +0100
hw/intc/arm_gicv5: Add missing early return in gicv5_set_handling()
In gicv5_set_handling(), if the guest tried to set the handling mode
on a nonexistent SPI then we print a GUEST_ERROR log message.
However, we forgot to then return, so execution continues into a NULL
pointer dereference.
Add the missing "return", bringing the code structure in to line with
the equivalent parts in other functions like gicv5_set_pending() and
gicv5_set_target().
CID: 1659596
Fixes: 5beb48ab53d ("hw/intc/arm_gicv5: Make gicv5_set_* update SPI state")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20260512093856.3197700-5-peter.maydell@linaro.org
diff --git a/hw/intc/arm_gicv5.c b/hw/intc/arm_gicv5.c
index 7ad274e369..6b1dd04991 100644
--- a/hw/intc/arm_gicv5.c
+++ b/hw/intc/arm_gicv5.c
@@ -926,6 +926,7 @@ void gicv5_set_handling(GICv5Common *cs, uint32_t id,
if (!spi) {
qemu_log_mask(LOG_GUEST_ERROR, "gicv5_set_handling: tried to set "
"priority of unreachable SPI %d\n", id);
+ return;
}
spi->hm = handling;