]> xenbits.xensource.com Git - libvirt.git/commitdiff
Fix leak of objects when reconnecting to QEMU instances
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 29 Oct 2013 13:58:00 +0000 (13:58 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 30 Oct 2013 11:16:17 +0000 (11:16 +0000)
The 'error' cleanup block in qemuProcessReconnect() had a
'return' statement in the middle of it. This caused a leak
of virConnectPtr & virQEMUDriverConfigPtr instances. This
was identified because netcf recently started checking its
refcount in libvirtd shutdown:

netcfStateCleanup:109 : internal error: Attempt to close netcf state driver with open connections

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/qemu/qemu_process.c

index 354e079a7559293d35034382e3634e2cbb27e074..b278742a4d6467f7ff4dae9e72b049b2becc9688 100644 (file)
@@ -3219,10 +3219,7 @@ error:
         if (!virDomainObjIsActive(obj)) {
             if (virObjectUnref(obj))
                 virObjectUnlock(obj);
-            return;
-        }
-
-        if (virObjectUnref(obj)) {
+        } else if (virObjectUnref(obj)) {
             /* We can't get the monitor back, so must kill the VM
              * to remove danger of it ending up running twice if
              * user tries to start it again later