[libvirt] [PATCH v2 10/12] qemu: hotplug: Fix possible memory leak of props

John Ferlan jferlan at redhat.com
Sat Apr 16 14:17:43 UTC 2016


If we failed to build the aliases or attach the chardev, then the props
would be leaked - fix that.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 src/qemu/qemu_hotplug.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index c206369..c05f88c 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1686,6 +1686,7 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver,
 
     if (qemuMonitorAddObject(priv->mon, type, objAlias, props) < 0)
         goto failbackend;
+    props = NULL;
 
     if (qemuMonitorAddDevice(priv->mon, devstr) < 0)
         goto failfrontend;
@@ -1703,6 +1704,7 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver,
  audit:
     virDomainAuditRNG(vm, NULL, rng, "attach", ret == 0);
  cleanup:
+    virJSONValueFree(props);
     if (ret < 0 && vm)
         qemuDomainReleaseDeviceAddress(vm, &rng->info, NULL);
     VIR_FREE(charAlias);
@@ -1716,6 +1718,7 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver,
  failbackend:
     if (rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD)
         ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
+    props = NULL;  /* qemuMonitorAddObject consumes on failure */
  failchardev:
     if (qemuDomainObjExitMonitor(driver, vm) < 0) {
         vm = NULL;
-- 
2.5.5




More information about the libvir-list mailing list