This patch uses VIR_AUTOUNREF() with the following pointer types:
- virQEMUCapsPtr
- virConnect
- qemuDomainSaveCookiePtr
- virDomainCapsPtr
- qemuBlockJobDataPtr*
- virNetworkPtr
- virSecurityManagerPtr
'cleanup' labels were deleted when possible.
* instances being cleaned up with qemuBlockJobStartupFinalize()
weren't changed, since qemuBlockJobStartupFinalize() will
unref the object after qemuBlockJobUnregister().
Suggested-by: Erik Skultety <eskultet(a)redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
src/qemu/qemu_driver.c | 76 +++++++++++++++---------------------------
1 file changed, 27 insertions(+), 49 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 9958164788..48eca00777 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -305,8 +305,8 @@ static int
qemuSecurityInit(virQEMUDriverPtr driver)
{
char **names;
- virSecurityManagerPtr mgr = NULL;
- virSecurityManagerPtr stack = NULL;
+ VIR_AUTOUNREF(virSecurityManagerPtr) mgr = NULL;
+ VIR_AUTOUNREF(virSecurityManagerPtr) stack = NULL;
VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
unsigned int flags = 0;
@@ -372,8 +372,6 @@ qemuSecurityInit(virQEMUDriverPtr driver)
error:
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Failed to initialize security drivers"));
- virObjectUnref(stack);
- virObjectUnref(mgr);
return -1;
}
@@ -1093,7 +1091,7 @@ static int
qemuStateStop(void)
{
int ret = -1;
- virConnectPtr conn;
+ VIR_AUTOUNREF(virConnectPtr) conn = NULL;
int numDomains = 0;
size_t i;
int state;
@@ -1137,7 +1135,6 @@ qemuStateStop(void)
VIR_FREE(domains);
}
VIR_FREE(flags);
- virObjectUnref(conn);
return ret;
}
@@ -3305,7 +3302,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
VIR_AUTOUNREF(virCapsPtr) caps = NULL;
virQEMUSaveDataPtr data = NULL;
- qemuDomainSaveCookiePtr cookie = NULL;
+ VIR_AUTOUNREF(qemuDomainSaveCookiePtr) cookie = NULL;
if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
goto cleanup;
@@ -3414,7 +3411,6 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver,
qemuDomainRemoveInactiveJob(driver, vm);
cleanup:
- virObjectUnref(cookie);
VIR_FREE(xml);
virQEMUSaveDataFree(data);
virObjectEventStateQueue(driver->domainEventState, event);
@@ -6861,7 +6857,7 @@ qemuDomainSaveImageStartVM(virConnectPtr conn,
char *errbuf = NULL;
VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
virQEMUSaveHeaderPtr header = &data->header;
- qemuDomainSaveCookiePtr cookie = NULL;
+ VIR_AUTOUNREF(qemuDomainSaveCookiePtr) cookie = NULL;
if (virSaveCookieParseString(data->cookie, (virObjectPtr *)&cookie,
virDomainXMLOptionGetSaveCookie(driver->xmlopt)) <
0)
@@ -6976,7 +6972,6 @@ qemuDomainSaveImageStartVM(virConnectPtr conn,
ret = 0;
cleanup:
- virObjectUnref(cookie);
virCommandFree(cmd);
VIR_FREE(errbuf);
if (qemuSecurityRestoreSavedStateLabel(driver, vm, path) < 0)
@@ -13533,9 +13528,8 @@ qemuConnectCompareHypervisorCPU(virConnectPtr conn,
const char *xmlCPU,
unsigned int flags)
{
- int ret = VIR_CPU_COMPARE_ERROR;
virQEMUDriverPtr driver = conn->privateData;
- virQEMUCapsPtr qemuCaps = NULL;
+ VIR_AUTOUNREF(virQEMUCapsPtr) qemuCaps = NULL;
bool failIncompatible;
virCPUDefPtr hvCPU;
virArch arch;
@@ -13545,7 +13539,7 @@ qemuConnectCompareHypervisorCPU(virConnectPtr conn,
VIR_CPU_COMPARE_ERROR);
if (virConnectCompareHypervisorCPUEnsureACL(conn) < 0)
- goto cleanup;
+ return VIR_CPU_COMPARE_ERROR;
failIncompatible = !!(flags & VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE);
@@ -13556,7 +13550,7 @@ qemuConnectCompareHypervisorCPU(virConnectPtr conn,
machine,
&arch, &virttype, NULL);
if (!qemuCaps)
- goto cleanup;
+ return VIR_CPU_COMPARE_ERROR;
hvCPU = virQEMUCapsGetHostModel(qemuCaps, virttype,
VIR_QEMU_CAPS_HOST_CPU_REPORTED);
@@ -13567,20 +13561,18 @@ qemuConnectCompareHypervisorCPU(virConnectPtr conn,
"virttype '%s'"),
virQEMUCapsGetBinary(qemuCaps),
virDomainVirtTypeToString(virttype));
- goto cleanup;
+ return VIR_CPU_COMPARE_ERROR;
}
if (ARCH_IS_X86(arch)) {
- ret = virCPUCompareXML(arch, hvCPU, xmlCPU, failIncompatible);
+ return virCPUCompareXML(arch, hvCPU, xmlCPU, failIncompatible);
} else {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
_("comparing with the hypervisor CPU is not supported "
"for arch %s"), virArchToString(arch));
}
- cleanup:
- virObjectUnref(qemuCaps);
- return ret;
+ return VIR_CPU_COMPARE_ERROR;
}
@@ -13643,7 +13635,7 @@ qemuConnectBaselineHypervisorCPU(virConnectPtr conn,
{
virQEMUDriverPtr driver = conn->privateData;
virCPUDefPtr *cpus = NULL;
- virQEMUCapsPtr qemuCaps = NULL;
+ VIR_AUTOUNREF(virQEMUCapsPtr) qemuCaps = NULL;
virArch arch;
virDomainVirtType virttype;
virDomainCapsCPUModelsPtr cpuModels;
@@ -13714,7 +13706,6 @@ qemuConnectBaselineHypervisorCPU(virConnectPtr conn,
cleanup:
virCPUDefListFree(cpus);
virCPUDefFree(cpu);
- virObjectUnref(qemuCaps);
virStringListFree(features);
return cpustr;
@@ -17541,7 +17532,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom,
VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
bool pivot = !!(flags & VIR_DOMAIN_BLOCK_JOB_ABORT_PIVOT);
bool async = !!(flags & VIR_DOMAIN_BLOCK_JOB_ABORT_ASYNC);
- qemuBlockJobDataPtr job = NULL;
+ VIR_AUTOUNREF(qemuBlockJobDataPtr) job = NULL;
virDomainObjPtr vm;
qemuDomainObjPrivatePtr priv = NULL;
bool blockdev = false;
@@ -17642,7 +17633,6 @@ qemuDomainBlockJobAbort(virDomainPtr dom,
qemuDomainObjEndJob(driver, vm);
cleanup:
- virObjectUnref(job);
virDomainObjEndAPI(&vm);
return ret;
}
@@ -20312,17 +20302,16 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn,
const char *virttype_str,
unsigned int flags)
{
- char *ret = NULL;
virQEMUDriverPtr driver = conn->privateData;
- virQEMUCapsPtr qemuCaps = NULL;
+ VIR_AUTOUNREF(virQEMUCapsPtr) qemuCaps = NULL;
virArch arch;
virDomainVirtType virttype;
- virDomainCapsPtr domCaps = NULL;
+ VIR_AUTOUNREF(virDomainCapsPtr) domCaps = NULL;
- virCheckFlags(0, ret);
+ virCheckFlags(0, NULL);
if (virConnectGetDomainCapabilitiesEnsureACL(conn) < 0)
- return ret;
+ return NULL;
qemuCaps = virQEMUCapsCacheLookupDefault(driver->qemuCapsCache,
emulatorbin,
@@ -20331,18 +20320,14 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn,
machine,
&arch, &virttype, &machine);
if (!qemuCaps)
- goto cleanup;
+ return NULL;
if (!(domCaps = virQEMUDriverGetDomainCapabilities(driver,
qemuCaps, machine,
arch, virttype)))
- goto cleanup;
+ return NULL;
- ret = virDomainCapsFormat(domCaps);
- cleanup:
- virObjectUnref(domCaps);
- virObjectUnref(qemuCaps);
- return ret;
+ return virDomainCapsFormat(domCaps);
}
@@ -21585,7 +21570,7 @@ qemuGetDHCPInterfaces(virDomainPtr dom,
int n_leases = 0;
size_t i, j;
size_t ifaces_count = 0;
- virNetworkPtr network = NULL;
+ VIR_AUTOUNREF(virNetworkPtr) network = NULL;
char macaddr[VIR_MAC_STRING_BUFLEN];
virDomainInterfacePtr iface = NULL;
virNetworkDHCPLeasePtr *leases = NULL;
@@ -21653,7 +21638,6 @@ qemuGetDHCPInterfaces(virDomainPtr dom,
rv = ifaces_count;
cleanup:
- virObjectUnref(network);
if (leases) {
for (i = 0; i < n_leases; i++)
virNetworkDHCPLeaseFree(leases[i]);
@@ -22448,32 +22432,26 @@ qemuNodeGetSEVInfo(virConnectPtr conn,
unsigned int flags)
{
virQEMUDriverPtr driver = conn->privateData;
- virQEMUCapsPtr qemucaps = NULL;
- int ret = -1;
+ VIR_AUTOUNREF(virQEMUCapsPtr) qemucaps = NULL;
if (virNodeGetSevInfoEnsureACL(conn) < 0)
- return ret;
+ return -1;
qemucaps = virQEMUCapsCacheLookupByArch(driver->qemuCapsCache,
virArchFromHost());
if (!qemucaps)
- goto cleanup;
+ return -1;
if (!virQEMUCapsGet(qemucaps, QEMU_CAPS_SEV_GUEST)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("QEMU does not support SEV guest"));
- goto cleanup;
+ return -1;
}
if (qemuGetSEVInfoToParams(qemucaps, params, nparams, flags) < 0)
- goto cleanup;
-
- ret = 0;
-
- cleanup:
- virObjectUnref(qemucaps);
+ return -1;
- return ret;
+ return 0;
}
--
2.21.0