Use refcounting for priv->monConfig instead of asymmetric freeing. Signed-off-by: Marc Hartmayer <mhartmay@xxxxxxxxxxxxx> Reviewed-by: Boris Fiuczynski <fiuczy@xxxxxxxxxxxxx> --- 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