Use refcounting for priv->monConfig instead of asymmetric freeing.
Signed-off-by: Marc Hartmayer <mhartmay(a)linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy(a)linux.ibm.com>
---
src/qemu/qemu_driver.c | 5 +----
src/qemu/qemu_process.c | 6 +++---
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index fe1b7801e9fc..010d7e285384 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -17026,21 +17026,18 @@ static virDomainPtr qemuDomainQemuAttach(virConnectPtr conn,
if (qemuProcessAttach(conn, driver, vm, pid,
pidfile, monConfig, monJSON) < 0) {
- monConfig = NULL;
qemuDomainRemoveInactive(driver, vm);
qemuDomainObjEndJob(driver, vm);
goto cleanup;
}
- monConfig = NULL;
-
dom = virGetDomain(conn, vm->def->name, vm->def->uuid,
vm->def->id);
qemuDomainObjEndJob(driver, vm);
cleanup:
virDomainDefFree(def);
- virDomainChrSourceDefFree(monConfig);
+ virObjectUnref(monConfig);
virDomainObjEndAPI(&vm);
VIR_FREE(pidfile);
virObjectUnref(caps);
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 85952b997566..f06fe62f9931 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -7528,8 +7528,7 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
goto error;
VIR_DEBUG("Preparing monitor state");
- priv->monConfig = monConfig;
- monConfig = NULL;
+ priv->monConfig = virObjectRef(monConfig);
priv->monJSON = monJSON;
/* Attaching to running QEMU so we need to detect whether it was started
@@ -7648,7 +7647,8 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
VIR_FREE(sec_managers);
if (seclabelgen)
virSecurityLabelDefFree(seclabeldef);
- virDomainChrSourceDefFree(monConfig);
+ virObjectUnref(priv->monConfig);
+ priv->monConfig = NULL;
virObjectUnref(cfg);
virObjectUnref(caps);
return -1;
--
2.17.0