From 54a241122063094146f1bdec9fab38df5617fb68 Mon Sep 17 00:00:00 2001 From: Daniel P. Berrange Date: Oct 30 2013 11:16:17 +0000 Subject: Fix leak of objects when reconnecting to QEMU instances 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 --- diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 354e079..b278742 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -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