summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Henrique Barboza2021-09-07 02:47:51 +0200
committerDavid Gibson2021-09-29 11:37:39 +0200
commit91bd95ce162cd34ba29e9f6470ecdcaaaf1d768d (patch)
tree6bb117d6f34aafe5fecd92cd83f6873daee5f2c0
parentspapr.c: handle dev->id in spapr_memory_unplug_rollback() (diff)
downloadqemu-91bd95ce162cd34ba29e9f6470ecdcaaaf1d768d.tar.gz
qemu-91bd95ce162cd34ba29e9f6470ecdcaaaf1d768d.tar.xz
qemu-91bd95ce162cd34ba29e9f6470ecdcaaaf1d768d.zip
spapr_drc.c: do not error_report() when drc->dev->id == NULL
The error_report() call in drc_unisolate_logical() is not considering that drc->dev->id can be NULL, and the underlying functions error_report() calls to do its job (vprintf(), g_strdup_printf() ...) has undefined behavior when trying to handle "%s" with NULL arguments. Besides, there is no utility into reporting that an unknown device was rejected by the guest. Acked-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Greg Kurz <groug@kaod.org> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> Message-Id: <20210907004755.424931-4-danielhb413@gmail.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--hw/ppc/spapr_drc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c
index a2f2634601..a4d9496f76 100644
--- a/hw/ppc/spapr_drc.c
+++ b/hw/ppc/spapr_drc.c
@@ -167,8 +167,11 @@ static uint32_t drc_unisolate_logical(SpaprDrc *drc)
}
drc->unplug_requested = false;
- error_report("Device hotunplug rejected by the guest "
- "for device %s", drc->dev->id);
+
+ if (drc->dev->id) {
+ error_report("Device hotunplug rejected by the guest "
+ "for device %s", drc->dev->id);
+ }
/*
* TODO: send a QAPI DEVICE_UNPLUG_ERROR event when