Replace virDomainFree with virObjectUnref

Since virDomainFree will call virObjectUnref anyway, let's just use that
directly so as to avoid the possibility that we inadvertently clear out
a pending error message when using the public API.
This commit is contained in:
John Ferlan 2014-11-30 09:57:02 -05:00
parent 1695f4ee61
commit 8fb3aee2f8
9 changed files with 86 additions and 121 deletions

12
cfg.mk
View File

@ -988,6 +988,15 @@ sc_prohibit_system_error_with_vir_err:
halt='do not use virReportSystemError with VIR_ERR_* error codes' \
$(_sc_search_regexp)
# Rule to prohibit usage of virXXXFree within library, daemon, remote, etc.
# functions. There's a corresponding exclude to allow usage within tests,
# docs, examples, tools, src/libvirt-*.c, and include/libvirt/libvirt-*.h
sc_prohibit_virXXXFree:
@prohibit='\bvirDomainFree\b' \
exclude='sc_prohibit_virXXXFree' \
halt='avoid using 'virXXXFree', use 'virObjectUnref' instead' \
$(_sc_search_regexp)
# We don't use this feature of maint.mk.
prev_version_file = /dev/null
@ -1175,3 +1184,6 @@ exclude_file_name_regexp--sc_prohibit_useless_translation = \
exclude_file_name_regexp--sc_prohibit_devname = \
^(tools/virsh.pod|cfg.mk|docs/.*)$$
exclude_file_name_regexp--sc_prohibit_virXXXFree = \
^(docs/|tests/|examples/|tools/|cfg.mk|src/libvirt_public.syms|include/libvirt/libvirt-domain.h|src/libvirt-(domain|qemu).c$$)

View File

@ -1347,8 +1347,7 @@ remoteDispatchDomainGetSchedulerType(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -1555,8 +1554,7 @@ remoteDispatchDomainGetSchedulerParameters(virNetServerPtr server ATTRIBUTE_UNUS
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -1613,7 +1611,7 @@ remoteDispatchConnectListAllDomains(virNetServerPtr server ATTRIBUTE_UNUSED,
virNetMessageSaveError(rerr);
if (doms && ndomains > 0) {
for (i = 0; i < ndomains; i++)
virDomainFree(doms[i]);
virObjectUnref(doms[i]);
VIR_FREE(doms);
}
return rv;
@ -1666,8 +1664,7 @@ remoteDispatchDomainGetSchedulerParametersFlags(virNetServerPtr server ATTRIBUTE
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -1724,8 +1721,7 @@ remoteDispatchDomainMemoryStats(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
VIR_FREE(stats);
return rv;
}
@ -1780,8 +1776,7 @@ remoteDispatchDomainBlockPeek(virNetServerPtr server ATTRIBUTE_UNUSED,
virNetMessageSaveError(rerr);
VIR_FREE(ret->buffer.buffer_val);
}
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -1844,8 +1839,7 @@ remoteDispatchDomainBlockStatsFlags(virNetServerPtr server ATTRIBUTE_UNUSED,
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -1897,8 +1891,7 @@ remoteDispatchDomainMemoryPeek(virNetServerPtr server ATTRIBUTE_UNUSED,
virNetMessageSaveError(rerr);
VIR_FREE(ret->buffer.buffer_val);
}
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -1941,8 +1934,7 @@ remoteDispatchDomainGetSecurityLabel(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
VIR_FREE(seclabel);
return rv;
}
@ -2001,8 +1993,7 @@ remoteDispatchDomainGetSecurityLabelList(virNetServerPtr server ATTRIBUTE_UNUSED
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
VIR_FREE(seclabels);
return rv;
}
@ -2107,8 +2098,7 @@ remoteDispatchDomainGetVcpuPinInfo(virNetServerPtr server ATTRIBUTE_UNUSED,
if (rv < 0)
virNetMessageSaveError(rerr);
VIR_FREE(cpumaps);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -2143,8 +2133,7 @@ remoteDispatchDomainPinEmulator(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -2194,8 +2183,7 @@ remoteDispatchDomainGetEmulatorPinInfo(virNetServerPtr server ATTRIBUTE_UNUSED,
if (rv < 0)
virNetMessageSaveError(rerr);
VIR_FREE(cpumaps);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -2276,8 +2264,7 @@ remoteDispatchDomainGetVcpus(virNetServerPtr server ATTRIBUTE_UNUSED,
}
VIR_FREE(cpumaps);
VIR_FREE(info);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -2446,8 +2433,7 @@ remoteDispatchDomainGetMemoryParameters(virNetServerPtr server ATTRIBUTE_UNUSED,
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -2509,8 +2495,7 @@ remoteDispatchDomainGetNumaParameters(virNetServerPtr server ATTRIBUTE_UNUSED,
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -2572,8 +2557,7 @@ remoteDispatchDomainGetBlkioParameters(virNetServerPtr server ATTRIBUTE_UNUSED,
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -2757,8 +2741,7 @@ remoteDispatchDomainGetBlockJobInfo(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -2820,8 +2803,7 @@ remoteDispatchDomainGetBlockIoTune(virNetServerPtr server ATTRIBUTE_UNUSED,
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -3618,8 +3600,7 @@ remoteDispatchDomainGetState(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -3774,8 +3755,7 @@ remoteDispatchConnectDomainEventCallbackRegisterAny(virNetServerPtr server ATTRI
VIR_FREE(callback);
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
virMutexUnlock(&priv->lock);
return rv;
}
@ -3915,8 +3895,7 @@ qemuDispatchDomainMonitorCommand(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -3967,8 +3946,7 @@ remoteDispatchDomainMigrateBegin3(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -4079,8 +4057,7 @@ remoteDispatchDomainMigratePerform3(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -4133,8 +4110,7 @@ remoteDispatchDomainMigrateFinish3(virNetServerPtr server ATTRIBUTE_UNUSED,
virNetMessageSaveError(rerr);
VIR_FREE(cookieout);
}
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -4170,8 +4146,7 @@ remoteDispatchDomainMigrateConfirm3(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -4262,8 +4237,7 @@ remoteDispatchDomainOpenGraphics(virNetServerPtr server ATTRIBUTE_UNUSED,
VIR_FORCE_CLOSE(fd);
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -4306,8 +4280,7 @@ remoteDispatchDomainOpenGraphicsFd(virNetServerPtr server ATTRIBUTE_UNUSED,
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -4371,8 +4344,7 @@ remoteDispatchDomainGetInterfaceParameters(virNetServerPtr server ATTRIBUTE_UNUS
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -4443,8 +4415,7 @@ remoteDispatchDomainGetCPUStats(virNetServerPtr server ATTRIBUTE_UNUSED,
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, args->ncpus * args->nparams);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -4498,8 +4469,7 @@ remoteDispatchDomainGetDiskErrors(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
if (errors && len > 0) {
size_t i;
for (i = 0; i < len; i++)
@ -4564,8 +4534,7 @@ remoteDispatchDomainListAllSnapshots(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
if (snaps && nsnaps > 0) {
for (i = 0; i < nsnaps; i++)
virDomainSnapshotFree(snaps[i]);
@ -4635,8 +4604,7 @@ remoteDispatchDomainSnapshotListAllChildren(virNetServerPtr server ATTRIBUTE_UNU
virNetMessageSaveError(rerr);
if (snapshot)
virDomainSnapshotFree(snapshot);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
if (snaps && nsnaps > 0) {
for (i = 0; i < nsnaps; i++)
virDomainSnapshotFree(snaps[i]);
@ -5214,8 +5182,7 @@ lxcDispatchDomainOpenNamespace(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -5265,8 +5232,7 @@ remoteDispatchDomainGetJobStats(virNetServerPtr server ATTRIBUTE_UNUSED,
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -5323,8 +5289,7 @@ remoteDispatchDomainMigrateBegin3Params(virNetServerPtr server ATTRIBUTE_UNUSED,
virTypedParamsFree(params, nparams);
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -5514,8 +5479,7 @@ remoteDispatchDomainMigratePerform3Params(virNetServerPtr server ATTRIBUTE_UNUSE
virTypedParamsFree(params, nparams);
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -5575,8 +5539,7 @@ remoteDispatchDomainMigrateFinish3Params(virNetServerPtr server ATTRIBUTE_UNUSED
virNetMessageSaveError(rerr);
VIR_FREE(cookieout);
}
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -5627,8 +5590,7 @@ remoteDispatchDomainMigrateConfirm3Params(virNetServerPtr server ATTRIBUTE_UNUSE
virTypedParamsFree(params, nparams);
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -5728,8 +5690,7 @@ remoteDispatchDomainCreateXMLWithFiles(virNetServerPtr server ATTRIBUTE_UNUSED,
VIR_FREE(files);
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -5779,8 +5740,7 @@ static int remoteDispatchDomainCreateWithFiles(virNetServerPtr server ATTRIBUTE_
VIR_FREE(files);
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -5975,8 +5935,7 @@ qemuDispatchConnectDomainMonitorEventRegister(virNetServerPtr server ATTRIBUTE_U
VIR_FREE(callback);
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
virMutexUnlock(&priv->lock);
return rv;
}
@ -6061,8 +6020,7 @@ remoteDispatchDomainGetTime(virNetServerPtr server ATTRIBUTE_UNUSED,
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
return rv;
}
@ -6475,8 +6433,7 @@ remoteDispatchDomainGetFSInfo(virNetServerPtr server ATTRIBUTE_UNUSED,
VIR_FREE(ret->info.info_val);
}
}
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
if (ninfo >= 0)
for (i = 0; i < ninfo; i++)
virDomainFSInfoFree(info[i]);

View File

@ -1544,7 +1544,7 @@ virDomainEventDispatchDefaultFunc(virConnectPtr conn,
VIR_WARN("Unexpected event ID %d", event->eventID);
cleanup:
virDomainFree(dom);
virObjectUnref(dom);
}
@ -1618,7 +1618,7 @@ virDomainQemuMonitorEventDispatchFunc(virConnectPtr conn,
qemuMonitorEvent->micros,
qemuMonitorEvent->details,
data->opaque);
virDomainFree(dom);
virObjectUnref(dom);
}

View File

@ -5121,7 +5121,7 @@ esxConnectListAllDomains(virConnectPtr conn,
cleanup:
if (doms) {
for (id = 0; id < count; id++)
virDomainFree(doms[id]);
virObjectUnref(doms[id]);
VIR_FREE(doms);
}

View File

@ -1311,7 +1311,7 @@ hypervConnectListAllDomains(virConnectPtr conn,
cleanup:
if (doms) {
for (i = 0; i < count; ++i)
virDomainFree(doms[i]);
virObjectUnref(doms[i]);
VIR_FREE(doms);
}

View File

@ -106,8 +106,7 @@ main(int argc, char **argv)
}
cleanup:
if (dom)
virDomainFree(dom);
virObjectUnref(dom);
if (conn)
virConnectClose(conn);
VIR_FREE(xml);

View File

@ -1010,7 +1010,7 @@ qemuStateStop(void)
cleanup:
if (domains) {
for (i = 0; i < numDomains; i++)
virDomainFree(domains[i]);
virObjectUnref(domains[i]);
VIR_FREE(domains);
}
VIR_FREE(flags);

View File

@ -1645,8 +1645,7 @@ remoteConnectListAllDomains(virConnectPtr conn,
cleanup:
if (doms) {
for (i = 0; i < ret.domains.domains_len; i++)
if (doms[i])
virDomainFree(doms[i]);
virObjectUnref(doms[i]);
VIR_FREE(doms);
}
@ -4764,7 +4763,7 @@ remoteDomainBuildEventLifecycleHelper(virConnectPtr conn,
return;
event = virDomainEventLifecycleNewFromDom(dom, msg->event, msg->detail);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -4802,7 +4801,7 @@ remoteDomainBuildEventRebootHelper(virConnectPtr conn,
return;
event = virDomainEventRebootNewFromDom(dom);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -4839,7 +4838,7 @@ remoteDomainBuildEventRTCChangeHelper(virConnectPtr conn,
return;
event = virDomainEventRTCChangeNewFromDom(dom, msg->offset);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -4876,7 +4875,7 @@ remoteDomainBuildEventWatchdogHelper(virConnectPtr conn,
return;
event = virDomainEventWatchdogNewFromDom(dom, msg->action);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -4916,7 +4915,7 @@ remoteDomainBuildEventIOErrorHelper(virConnectPtr conn,
msg->srcPath,
msg->devAlias,
msg->action);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -4958,7 +4957,7 @@ remoteDomainBuildEventIOErrorReasonHelper(virConnectPtr conn,
msg->action,
msg->reason);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -4997,7 +4996,7 @@ remoteDomainBuildEventBlockJobHelper(virConnectPtr conn,
event = virDomainEventBlockJobNewFromDom(dom, msg->path, msg->type,
msg->status);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -5037,7 +5036,7 @@ remoteDomainBuildEventBlockJob2(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
event = virDomainEventBlockJob2NewFromDom(dom, msg->dst, msg->type,
msg->status);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, msg->callbackID);
}
@ -5091,7 +5090,7 @@ remoteDomainBuildEventGraphicsHelper(virConnectPtr conn,
msg->authScheme,
subject);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
return;
@ -5115,7 +5114,7 @@ remoteDomainBuildEventGraphicsHelper(virConnectPtr conn,
VIR_FREE(subject->identities);
VIR_FREE(subject);
}
virDomainFree(dom);
virObjectUnref(dom);
return;
}
static void
@ -5152,7 +5151,7 @@ remoteDomainBuildEventControlErrorHelper(virConnectPtr conn,
event = virDomainEventControlErrorNewFromDom(dom);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -5195,7 +5194,7 @@ remoteDomainBuildEventDiskChangeHelper(virConnectPtr conn,
msg->devAlias,
msg->reason);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -5236,7 +5235,7 @@ remoteDomainBuildEventTrayChangeHelper(virConnectPtr conn,
msg->devAlias,
msg->reason);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -5275,7 +5274,7 @@ remoteDomainBuildEventPMWakeupHelper(virConnectPtr conn,
event = virDomainEventPMWakeupNewFromDom(dom, reason);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -5315,7 +5314,7 @@ remoteDomainBuildEventPMSuspendHelper(virConnectPtr conn,
event = virDomainEventPMSuspendNewFromDom(dom, reason);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -5354,7 +5353,7 @@ remoteDomainBuildEventBalloonChangeHelper(virConnectPtr conn,
return;
event = virDomainEventBalloonChangeNewFromDom(dom, msg->actual);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -5394,7 +5393,7 @@ remoteDomainBuildEventPMSuspendDiskHelper(virConnectPtr conn,
event = virDomainEventPMSuspendDiskNewFromDom(dom, reason);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -5434,7 +5433,7 @@ remoteDomainBuildEventDeviceRemovedHelper(virConnectPtr conn,
event = virDomainEventDeviceRemovedNewFromDom(dom, msg->devAlias);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
@ -5485,7 +5484,7 @@ remoteDomainBuildEventCallbackTunable(virNetClientProgramPtr prog ATTRIBUTE_UNUS
event = virDomainEventTunableNewFromDom(dom, params, nparams);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, msg->callbackID);
}
@ -5508,7 +5507,7 @@ remoteDomainBuildEventCallbackAgentLifecycle(virNetClientProgramPtr prog ATTRIBU
event = virDomainEventAgentLifecycleNewFromDom(dom, msg->state,
msg->reason);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, msg->callbackID);
}
@ -5555,7 +5554,7 @@ remoteDomainBuildQemuMonitorEvent(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
msg->event, msg->seconds,
msg->micros,
msg->details ? *msg->details : NULL);
virDomainFree(dom);
virObjectUnref(dom);
remoteEventQueue(priv, event, msg->callbackID);
}

View File

@ -7497,10 +7497,8 @@ vboxConnectListAllDomains(virConnectPtr conn,
cleanup:
if (doms) {
for (i = 0; i < count; i++) {
if (doms[i])
virDomainFree(doms[i]);
}
for (i = 0; i < count; i++)
virObjectUnref(doms[i]);
}
VIR_FREE(doms);