mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
system/ioport: Fix qom-list-properties crash on portio list obj
Currently qom-list-properties QMP command will crash when querying the portio list MR object. It's because its finalize() assumes full initialization done in portio_list_add_1(). Provide a simple fix for now to avoid the crash. There is chance for a longer term fix, ideally MR should be initialized in instance_init(). However that'll need more work, and that should also be done with cleaning the hard-coded MR operations in portio_list_add_1(). To be explored. Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Link: https://lore.kernel.org/r/87a4uvw066.fsf@pond.sub.org Reported-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
committed by
Marc-André Lureau
parent
abc177e885
commit
010a30d8a4
@@ -346,8 +346,15 @@ static void memory_region_portio_list_finalize(Object *obj)
|
||||
{
|
||||
MemoryRegionPortioList *mrpio = MEMORY_REGION_PORTIO_LIST(obj);
|
||||
|
||||
object_unref(&mrpio->mr);
|
||||
g_free(mrpio->ports);
|
||||
/*
|
||||
* This check makes sure any random object_new() (without doing the
|
||||
* rest inits in portio_list_add_1()) will not crash when finalizing.
|
||||
* One example is QMP command qom-list-properties.
|
||||
*/
|
||||
if (mrpio->ports) {
|
||||
object_unref(&mrpio->mr);
|
||||
g_free(mrpio->ports);
|
||||
}
|
||||
}
|
||||
|
||||
static const TypeInfo memory_region_portio_list_info = {
|
||||
|
||||
Reference in New Issue
Block a user