]> git.proxmox.com Git - mirror_qemu.git/commitdiff
softmmu/qdev-monitor: fix use-after-free in qdev_set_id()
authorStefan Hajnoczi <stefanha@redhat.com>
Tue, 2 Nov 2021 16:33:42 +0000 (16:33 +0000)
committerMichael S. Tsirkin <mst@redhat.com>
Thu, 11 Nov 2021 08:13:05 +0000 (03:13 -0500)
Reported by Coverity (CID 1465222).

Fixes: 4a1d937796de0fecd8b22d7dbebf87f38e8282fd ("softmmu/qdev-monitor: add error handling in qdev_set_id")
Cc: Damien Hedde <damien.hedde@greensocs.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20211102163342.31162-1-stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
softmmu/qdev-monitor.c

index f8b3a4cd82b20d162753fc1fa6dbf03632887962..588a62b88d79e9558ea565487de7f94ef04cea9a 100644 (file)
@@ -593,8 +593,8 @@ const char *qdev_set_id(DeviceState *dev, char *id, Error **errp)
         if (prop) {
             dev->id = id;
         } else {
-            g_free(id);
             error_setg(errp, "Duplicate device ID '%s'", id);
+            g_free(id);
             return NULL;
         }
     } else {