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
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$$)
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
virNetMessageSaveError(rerr);
if (doms && ndomains > 0) {
for (i = 0; i < ndomains; i++)
- virDomainFree(doms[i]);
+ virObjectUnref(doms[i]);
VIR_FREE(doms);
}
return rv;
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
VIR_FREE(stats);
return rv;
}
virNetMessageSaveError(rerr);
VIR_FREE(ret->buffer.buffer_val);
}
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
virNetMessageSaveError(rerr);
VIR_FREE(ret->buffer.buffer_val);
}
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
VIR_FREE(seclabel);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
VIR_FREE(seclabels);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
VIR_FREE(cpumaps);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
VIR_FREE(cpumaps);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
}
VIR_FREE(cpumaps);
VIR_FREE(info);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
VIR_FREE(callback);
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
virMutexUnlock(&priv->lock);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
virNetMessageSaveError(rerr);
VIR_FREE(cookieout);
}
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
VIR_FORCE_CLOSE(fd);
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, args->ncpus * args->nparams);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
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++)
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]);
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]);
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
if (rv < 0)
virNetMessageSaveError(rerr);
virTypedParamsFree(params, nparams);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
virTypedParamsFree(params, nparams);
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
virTypedParamsFree(params, nparams);
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
virNetMessageSaveError(rerr);
VIR_FREE(cookieout);
}
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
virTypedParamsFree(params, nparams);
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
VIR_FREE(files);
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
VIR_FREE(files);
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
VIR_FREE(callback);
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
virMutexUnlock(&priv->lock);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
return rv;
}
VIR_FREE(ret->info.info_val);
}
}
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
if (ninfo >= 0)
for (i = 0; i < ninfo; i++)
virDomainFSInfoFree(info[i]);
VIR_WARN("Unexpected event ID %d", event->eventID);
cleanup:
- virDomainFree(dom);
+ virObjectUnref(dom);
}
qemuMonitorEvent->micros,
qemuMonitorEvent->details,
data->opaque);
- virDomainFree(dom);
+ virObjectUnref(dom);
}
cleanup:
if (doms) {
for (id = 0; id < count; id++)
- virDomainFree(doms[id]);
+ virObjectUnref(doms[id]);
VIR_FREE(doms);
}
cleanup:
if (doms) {
for (i = 0; i < count; ++i)
- virDomainFree(doms[i]);
+ virObjectUnref(doms[i]);
VIR_FREE(doms);
}
}
cleanup:
- if (dom)
- virDomainFree(dom);
+ virObjectUnref(dom);
if (conn)
virConnectClose(conn);
VIR_FREE(xml);
cleanup:
if (domains) {
for (i = 0; i < numDomains; i++)
- virDomainFree(domains[i]);
+ virObjectUnref(domains[i]);
VIR_FREE(domains);
}
VIR_FREE(flags);
cleanup:
if (doms) {
for (i = 0; i < ret.domains.domains_len; i++)
- if (doms[i])
- virDomainFree(doms[i]);
+ virObjectUnref(doms[i]);
VIR_FREE(doms);
}
return;
event = virDomainEventLifecycleNewFromDom(dom, msg->event, msg->detail);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
return;
event = virDomainEventRebootNewFromDom(dom);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
return;
event = virDomainEventRTCChangeNewFromDom(dom, msg->offset);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
return;
event = virDomainEventWatchdogNewFromDom(dom, msg->action);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
msg->srcPath,
msg->devAlias,
msg->action);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
msg->action,
msg->reason);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
event = virDomainEventBlockJobNewFromDom(dom, msg->path, msg->type,
msg->status);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
event = virDomainEventBlockJob2NewFromDom(dom, msg->dst, msg->type,
msg->status);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, msg->callbackID);
}
msg->authScheme,
subject);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
return;
VIR_FREE(subject->identities);
VIR_FREE(subject);
}
- virDomainFree(dom);
+ virObjectUnref(dom);
return;
}
static void
event = virDomainEventControlErrorNewFromDom(dom);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
msg->devAlias,
msg->reason);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
msg->devAlias,
msg->reason);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
event = virDomainEventPMWakeupNewFromDom(dom, reason);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
event = virDomainEventPMSuspendNewFromDom(dom, reason);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
return;
event = virDomainEventBalloonChangeNewFromDom(dom, msg->actual);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
event = virDomainEventPMSuspendDiskNewFromDom(dom, reason);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
event = virDomainEventDeviceRemovedNewFromDom(dom, msg->devAlias);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, callbackID);
}
event = virDomainEventTunableNewFromDom(dom, params, nparams);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, msg->callbackID);
}
event = virDomainEventAgentLifecycleNewFromDom(dom, msg->state,
msg->reason);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, msg->callbackID);
}
msg->event, msg->seconds,
msg->micros,
msg->details ? *msg->details : NULL);
- virDomainFree(dom);
+ virObjectUnref(dom);
remoteEventQueue(priv, event, msg->callbackID);
}
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);