mirror of https://gitee.com/openkylin/libvirt.git
qemu: Use refcounting for priv->monConfig
Use refcounting for priv->monConfig instead of asymmetric freeing. Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com> Reviewed-by: Ján Tomko <jtomko@redhat.com> Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
27a9ebf281
commit
527da4ce9b
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue