@samitouri / QOSamiQemu / commits / fb7609c4bf

hw/core/platform-bus: guard platform_bus_get_mmio_addr() against NULL

sysbus_mmio_get_region() returns NULL when a device has fewer MMIO regions than the requested slot index. platform_bus_get_mmio_addr() passes the result directly to memory_region_is_mapped() without a NULL check, causing a SIGSEGV. Return -1 early when the region pointer is NULL, consistent with the existing "not mapped" path. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Mohammadfaiz Bawa <mbawa@redhat.com> Link: https://lore.kernel.org/qemu-devel/20260619093140.832136-2-mbawa@redhat.com Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>

Mohammadfaiz Bawa committed Jun 19, 2026 at 15:01 UTC fb7609c4bf74e31ea06c0d8e400dd01badcfa4c3
1 file changed +1 -2
hw/core/platform-bus.c
+1 -2
@@ -59,8 +59,7 @@ hwaddr platform_bus_get_mmio_addr(PlatformBusDevice *pbus, SysBusDevice *sbdev,
59 Object *pbus_mr_obj = OBJECT(pbus_mr);
60 Object *parent_mr;
61
62 - if (!memory_region_is_mapped(sbdev_mr)) {
63 - /* Region is not mapped? */
62 + if (!sbdev_mr || !memory_region_is_mapped(sbdev_mr)) {
63 return -1;
64 }
65