[libvirt PATCH 00/15] eliminate VIR_FREE in all *Dispose() functions

A *Dispose() function is similar to a *Free() function, except that 1) the object is always sent as a void* so it has to be typecast into some other object-specific pointer at the top of the function, and 2) it frees all the resources inside the object, but never frees the object itself (this is done by the caller, somewhere deep in the bowels of virObjectDispose or something I guess; frankly I've always ignored the details simply "because I could"). The important point is that the contents of the object are never referenced in any way after return from the Dispose function, so it is unnecessary to clear any pointers, ergo (always wanted to use that word!) it's completely safe to replace all VIR_FREEs in a *Dispose() function with g_free (as long as there's nothing within the Dispose function itself that depends on the pointers being cleared). After this series is applied, there will be exactly 0 instances of VIR_FREE in any *Dispose() (or *Free()) function. As with the *Free() series, almost all were accomplished by directly replacing VIR_FREE with g_free, but there were a couple oddities that needed separate patches just to call them out: * Patch 1 & 2 - in both cases a Dispose() function was the only caller to a *Free() function that didn't fit the normal pattern of a *Free() function. Since each of the Free()s had only one caller (their respective *Dispose() parents), their contents were just moved into the caller, clearing the way for their VIR_FREEs to be g_free-ified (in later patches, along with the other *Dispose() functions in the same directories). 220 VIR_FREE uses eliminated in this series, so a total of 762 for the two series combined (nearly 20% of all remaining VIR_FREEs). Laine Stump (15): conf: simplify virDomainCapsDispose() rpc: eliminate static function virNetLibsshSessionAuthMethodsFree() bhyve: replace VIR_FREE with g_free in all *Dispose() functions libxl: replace VIR_FREE with g_free in all *Dispose() functions qemu: replace VIR_FREE with g_free in all *Dispose() functions interface: replace VIR_FREE with g_free in all *Dispose() functions access: replace VIR_FREE with g_free in all *Dispose() functions hypervisor: replace VIR_FREE with g_free in all *Dispose() functions logging: replace VIR_FREE with g_free in all *Dispose() functions rpc: replace VIR_FREE with g_free in all *Dispose() functions security: replace VIR_FREE with g_free in all *Dispose() functions util: replace VIR_FREE with g_free in all *Dispose() functions conf: replace VIR_FREE with g_free in all *Dispose() functions tests: replace VIR_FREE with g_free in all *Dispose() functions datatypes: replace VIR_FREE with g_free in all *Dispose() functions src/access/viraccessmanager.c | 2 +- src/bhyve/bhyve_conf.c | 2 +- src/conf/capabilities.c | 22 ++--- src/conf/checkpoint_conf.c | 2 +- src/conf/domain_capabilities.c | 29 ++---- src/conf/domain_conf.c | 2 +- src/conf/domain_event.c | 52 +++++----- src/conf/moment_conf.c | 6 +- src/conf/object_event.c | 4 +- src/conf/snapshot_conf.c | 4 +- src/conf/virsecretobj.c | 6 +- src/conf/virstorageobj.c | 4 +- src/datatypes.c | 34 +++---- src/hypervisor/virhostdev.c | 2 +- src/interface/interface_backend_netcf.c | 2 +- src/libxl/libxl_conf.c | 20 ++-- src/libxl/libxl_migration.c | 2 +- src/logging/log_handler.c | 2 +- src/qemu/qemu_agent.c | 2 +- src/qemu/qemu_capabilities.c | 10 +- src/qemu/qemu_conf.c | 122 ++++++++++++------------ src/qemu/qemu_domain.c | 10 +- src/qemu/qemu_monitor.c | 4 +- src/rpc/virnetclient.c | 4 +- src/rpc/virnetdaemon.c | 6 +- src/rpc/virnetlibsshsession.c | 37 +++---- src/rpc/virnetsaslcontext.c | 2 +- src/rpc/virnetserver.c | 8 +- src/rpc/virnetserverservice.c | 2 +- src/rpc/virnetsocket.c | 6 +- src/rpc/virnetsshsession.c | 8 +- src/rpc/virnettlscontext.c | 6 +- src/security/security_manager.c | 2 +- src/util/virdnsmasq.c | 2 +- src/util/virfilecache.c | 4 +- src/util/virmdev.c | 2 +- src/util/virnvme.c | 2 +- src/util/virpci.c | 2 +- src/util/virresctrl.c | 40 ++++---- src/util/virscsi.c | 2 +- src/util/virscsivhost.c | 2 +- src/util/virusb.c | 2 +- tests/virfilecachetest.c | 2 +- 43 files changed, 235 insertions(+), 251 deletions(-) -- 2.29.2

virDomainCapsDispose() was the only caller of virDomainCapsStringValuesFree(), which 1) didn't actually free the object it was called with, but only cleared it, making it less mechanical to convert from VIR_FREE to g_free (since it's not immediately obvious from looking at virDomainCapsStringValuesFree() that the pointers being cleared will never again be used). We could have renamed the function to virDomainCapsStringValuesClear() to side-step the confusion of what the function actually does, but that would just make the upcoming switch from VIR_FREE to g_free require more thought. But since there is only a single caller to the function, and it is a vir*Dispose() function (indicating that the object containing the virDomainCapsStringValues is going to be freed immediately after the function finishes), and thus VIR_FREE() *could* be safely replaced by g_free()), we instead just move the contents of virDomainCapsStringValuesFree() into virDomainCapsDispose() (and *that* function will be trivially converted in an upcoming "mechanical" patch). Signed-off-by: Laine Stump <laine@redhat.com> --- src/conf/domain_capabilities.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 837c571b45..407cf0348a 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -65,20 +65,6 @@ static int virDomainCapsOnceInit(void) VIR_ONCE_GLOBAL_INIT(virDomainCaps); -static void -virDomainCapsStringValuesFree(virDomainCapsStringValuesPtr values) -{ - size_t i; - - if (!values || !values->values) - return; - - for (i = 0; i < values->nvalues; i++) - VIR_FREE(values->values[i]); - VIR_FREE(values->values); -} - - void virSEVCapabilitiesFree(virSEVCapability *cap) { @@ -95,6 +81,8 @@ static void virDomainCapsDispose(void *obj) { virDomainCapsPtr caps = obj; + virDomainCapsStringValuesPtr values; + size_t i; VIR_FREE(caps->path); VIR_FREE(caps->machine); @@ -102,7 +90,10 @@ virDomainCapsDispose(void *obj) virCPUDefFree(caps->cpu.hostModel); virSEVCapabilitiesFree(caps->sev); - virDomainCapsStringValuesFree(&caps->os.loader.values); + values = &caps->os.loader.values; + for (i = 0; i < values->nvalues; i++) + VIR_FREE(values->values[i]); + VIR_FREE(values->values); } -- 2.29.2

This function is only called from one place, and has, well... not a *misleading* name, but it doesn't fit the standard frame of functions that end in "Free" (it doesn't actually free the object pointed to by its argument, but frees *some parts* of the content of the object). Rather than try to think up an appropriate name, let's just move the meat of this function into its one and only caller, virNetLibsshSessionDispose(), which will allow us to convert its VIR_FREEs into g_free in a future patch. Signed-off-by: Laine Stump <laine@redhat.com> --- src/rpc/virnetlibsshsession.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c index 76934c7c0b..48ef914c70 100644 --- a/src/rpc/virnetlibsshsession.c +++ b/src/rpc/virnetlibsshsession.c @@ -108,26 +108,12 @@ struct _virNetLibsshSession { size_t bufStart; }; -static void -virNetLibsshSessionAuthMethodsFree(virNetLibsshSessionPtr sess) -{ - size_t i; - - for (i = 0; i < sess->nauths; i++) { - virSecureEraseString(sess->auths[i]->password); - g_free(sess->auths[i]->password); - VIR_FREE(sess->auths[i]->filename); - VIR_FREE(sess->auths[i]); - } - - VIR_FREE(sess->auths); - sess->nauths = 0; -} - static void virNetLibsshSessionDispose(void *obj) { virNetLibsshSessionPtr sess = obj; + size_t i; + VIR_DEBUG("sess=0x%p", sess); if (!sess) @@ -144,7 +130,14 @@ virNetLibsshSessionDispose(void *obj) ssh_free(sess->session); } - virNetLibsshSessionAuthMethodsFree(sess); + for (i = 0; i < sess->nauths; i++) { + virSecureEraseString(sess->auths[i]->password); + VIR_FREE(sess->auths[i]->password); + VIR_FREE(sess->auths[i]->filename); + VIR_FREE(sess->auths[i]); + } + + VIR_FREE(sess->auths); VIR_FREE(sess->channelCommand); VIR_FREE(sess->hostname); -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/bhyve/bhyve_conf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bhyve/bhyve_conf.c b/src/bhyve/bhyve_conf.c index 9012eb8b5f..0f60aac9a0 100644 --- a/src/bhyve/bhyve_conf.c +++ b/src/bhyve/bhyve_conf.c @@ -97,7 +97,7 @@ virBhyveDriverConfigDispose(void *obj) { virBhyveDriverConfigPtr cfg = obj; - VIR_FREE(cfg->firmwareDir); + g_free(cfg->firmwareDir); } void -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/libxl/libxl_conf.c | 20 ++++++++++---------- src/libxl/libxl_migration.c | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index de0fd66842..37a2c2e3cd 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -76,16 +76,16 @@ libxlDriverConfigDispose(void *obj) if (cfg->logger) libxlLoggerFree(cfg->logger); - VIR_FREE(cfg->configBaseDir); - VIR_FREE(cfg->configDir); - VIR_FREE(cfg->autostartDir); - VIR_FREE(cfg->logDir); - VIR_FREE(cfg->stateDir); - VIR_FREE(cfg->libDir); - VIR_FREE(cfg->saveDir); - VIR_FREE(cfg->autoDumpDir); - VIR_FREE(cfg->lockManagerName); - VIR_FREE(cfg->channelDir); + g_free(cfg->configBaseDir); + g_free(cfg->configDir); + g_free(cfg->autostartDir); + g_free(cfg->logDir); + g_free(cfg->stateDir); + g_free(cfg->libDir); + g_free(cfg->saveDir); + g_free(cfg->autoDumpDir); + g_free(cfg->lockManagerName); + g_free(cfg->channelDir); virFirmwareFreeList(cfg->firmwares, cfg->nfirmwares); } diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index 72b6cb32cb..c56fdd98ab 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -228,7 +228,7 @@ libxlMigrationDstArgsDispose(void *obj) libxlMigrationDstArgs *args = obj; libxlMigrationCookieFree(args->migcookie); - VIR_FREE(args->socks); + g_free(args->socks); virObjectUnref(args->conn); virObjectUnref(args->vm); } -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/qemu/qemu_agent.c | 2 +- src/qemu/qemu_capabilities.c | 10 +-- src/qemu/qemu_conf.c | 122 +++++++++++++++++------------------ src/qemu/qemu_domain.c | 10 +-- src/qemu/qemu_monitor.c | 4 +- 5 files changed, 74 insertions(+), 74 deletions(-) diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c index af0397e6e2..51cc00c618 100644 --- a/src/qemu/qemu_agent.c +++ b/src/qemu/qemu_agent.c @@ -177,7 +177,7 @@ static void qemuAgentDispose(void *obj) if (agent->cb && agent->cb->destroy) (agent->cb->destroy)(agent, agent->vm); virCondDestroy(&agent->notify); - VIR_FREE(agent->buffer); + g_free(agent->buffer); g_main_context_unref(agent->context); virResetError(&agent->lastError); } diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index c57864f602..d41b4a4753 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1982,12 +1982,12 @@ void virQEMUCapsDispose(void *obj) virBitmapFree(qemuCaps->flags); - VIR_FREE(qemuCaps->package); - VIR_FREE(qemuCaps->kernelVersion); - VIR_FREE(qemuCaps->binary); - VIR_FREE(qemuCaps->hostCPUSignature); + g_free(qemuCaps->package); + g_free(qemuCaps->kernelVersion); + g_free(qemuCaps->binary); + g_free(qemuCaps->hostCPUSignature); - VIR_FREE(qemuCaps->gicCapabilities); + g_free(qemuCaps->gicCapabilities); virSEVCapabilitiesFree(qemuCaps->sevCapabilities); diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index eae94bb5a2..35d0b6515c 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -306,78 +306,78 @@ static void virQEMUDriverConfigDispose(void *obj) virBitmapFree(cfg->namespaces); g_strfreev(cfg->cgroupDeviceACL); - VIR_FREE(cfg->uri); - - VIR_FREE(cfg->configBaseDir); - VIR_FREE(cfg->configDir); - VIR_FREE(cfg->autostartDir); - VIR_FREE(cfg->logDir); - VIR_FREE(cfg->swtpmLogDir); - VIR_FREE(cfg->stateDir); - VIR_FREE(cfg->swtpmStateDir); - VIR_FREE(cfg->slirpStateDir); - VIR_FREE(cfg->dbusStateDir); - - VIR_FREE(cfg->libDir); - VIR_FREE(cfg->cacheDir); - VIR_FREE(cfg->saveDir); - VIR_FREE(cfg->snapshotDir); - VIR_FREE(cfg->checkpointDir); - VIR_FREE(cfg->channelTargetDir); - VIR_FREE(cfg->nvramDir); - - VIR_FREE(cfg->defaultTLSx509certdir); - VIR_FREE(cfg->defaultTLSx509secretUUID); - - VIR_FREE(cfg->vncTLSx509certdir); - VIR_FREE(cfg->vncTLSx509secretUUID); - VIR_FREE(cfg->vncListen); - VIR_FREE(cfg->vncPassword); - VIR_FREE(cfg->vncSASLdir); - - VIR_FREE(cfg->spiceTLSx509certdir); - VIR_FREE(cfg->spiceListen); - VIR_FREE(cfg->spicePassword); - VIR_FREE(cfg->spiceSASLdir); - - VIR_FREE(cfg->chardevTLSx509certdir); - VIR_FREE(cfg->chardevTLSx509secretUUID); - - VIR_FREE(cfg->vxhsTLSx509certdir); - VIR_FREE(cfg->vxhsTLSx509secretUUID); - - VIR_FREE(cfg->nbdTLSx509certdir); - VIR_FREE(cfg->nbdTLSx509secretUUID); - - VIR_FREE(cfg->migrateTLSx509certdir); - VIR_FREE(cfg->migrateTLSx509secretUUID); - - VIR_FREE(cfg->backupTLSx509certdir); - VIR_FREE(cfg->backupTLSx509secretUUID); + g_free(cfg->uri); + + g_free(cfg->configBaseDir); + g_free(cfg->configDir); + g_free(cfg->autostartDir); + g_free(cfg->logDir); + g_free(cfg->swtpmLogDir); + g_free(cfg->stateDir); + g_free(cfg->swtpmStateDir); + g_free(cfg->slirpStateDir); + g_free(cfg->dbusStateDir); + + g_free(cfg->libDir); + g_free(cfg->cacheDir); + g_free(cfg->saveDir); + g_free(cfg->snapshotDir); + g_free(cfg->checkpointDir); + g_free(cfg->channelTargetDir); + g_free(cfg->nvramDir); + + g_free(cfg->defaultTLSx509certdir); + g_free(cfg->defaultTLSx509secretUUID); + + g_free(cfg->vncTLSx509certdir); + g_free(cfg->vncTLSx509secretUUID); + g_free(cfg->vncListen); + g_free(cfg->vncPassword); + g_free(cfg->vncSASLdir); + + g_free(cfg->spiceTLSx509certdir); + g_free(cfg->spiceListen); + g_free(cfg->spicePassword); + g_free(cfg->spiceSASLdir); + + g_free(cfg->chardevTLSx509certdir); + g_free(cfg->chardevTLSx509secretUUID); + + g_free(cfg->vxhsTLSx509certdir); + g_free(cfg->vxhsTLSx509secretUUID); + + g_free(cfg->nbdTLSx509certdir); + g_free(cfg->nbdTLSx509secretUUID); + + g_free(cfg->migrateTLSx509certdir); + g_free(cfg->migrateTLSx509secretUUID); + + g_free(cfg->backupTLSx509certdir); + g_free(cfg->backupTLSx509secretUUID); while (cfg->nhugetlbfs) { cfg->nhugetlbfs--; - VIR_FREE(cfg->hugetlbfs[cfg->nhugetlbfs].mnt_dir); + g_free(cfg->hugetlbfs[cfg->nhugetlbfs].mnt_dir); } - VIR_FREE(cfg->hugetlbfs); - VIR_FREE(cfg->bridgeHelperName); - VIR_FREE(cfg->prHelperName); - VIR_FREE(cfg->slirpHelperName); - VIR_FREE(cfg->dbusDaemonName); + g_free(cfg->hugetlbfs); + g_free(cfg->bridgeHelperName); + g_free(cfg->prHelperName); + g_free(cfg->slirpHelperName); + g_free(cfg->dbusDaemonName); - VIR_FREE(cfg->saveImageFormat); - VIR_FREE(cfg->dumpImageFormat); - VIR_FREE(cfg->snapshotImageFormat); - VIR_FREE(cfg->autoDumpPath); + g_free(cfg->saveImageFormat); + g_free(cfg->dumpImageFormat); + g_free(cfg->snapshotImageFormat); + g_free(cfg->autoDumpPath); g_strfreev(cfg->securityDriverNames); - VIR_FREE(cfg->lockManagerName); + g_free(cfg->lockManagerName); virFirmwareFreeList(cfg->firmwares, cfg->nfirmwares); - VIR_FREE(cfg->memoryBackingDir); - VIR_FREE(cfg->swtpmStorageDir); + g_free(cfg->memoryBackingDir); + g_free(cfg->swtpmStorageDir); g_strfreev(cfg->capabilityfilters); } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 6ab8a94b73..0f09e321fb 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -681,8 +681,8 @@ qemuDomainDiskPrivateDispose(void *obj) qemuDomainDiskPrivatePtr priv = obj; virObjectUnref(priv->migrSource); - VIR_FREE(priv->qomName); - VIR_FREE(priv->nodeCopyOnRead); + g_free(priv->qomName); + g_free(priv->nodeCopyOnRead); virObjectUnref(priv->blockjob); } @@ -771,8 +771,8 @@ qemuDomainVcpuPrivateDispose(void *obj) { qemuDomainVcpuPrivatePtr priv = obj; - VIR_FREE(priv->type); - VIR_FREE(priv->alias); + g_free(priv->type); + g_free(priv->alias); virJSONValueFree(priv->props); return; } @@ -890,7 +890,7 @@ qemuDomainGraphicsPrivateDispose(void *obj) { qemuDomainGraphicsPrivatePtr priv = obj; - VIR_FREE(priv->tlsAlias); + g_free(priv->tlsAlias); g_clear_pointer(&priv->secinfo, qemuDomainSecretInfoFree); } diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 2d9c9754d1..14966d4096 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -236,8 +236,8 @@ qemuMonitorDispose(void *obj) g_main_context_unref(mon->context); virResetError(&mon->lastError); virCondDestroy(&mon->notify); - VIR_FREE(mon->buffer); - VIR_FREE(mon->balloonpath); + g_free(mon->buffer); + g_free(mon->balloonpath); } -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/interface/interface_backend_netcf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/interface/interface_backend_netcf.c b/src/interface/interface_backend_netcf.c index df04484c59..e40a4cb108 100644 --- a/src/interface/interface_backend_netcf.c +++ b/src/interface/interface_backend_netcf.c @@ -84,7 +84,7 @@ virNetcfDriverStateDispose(void *obj) if (_driver->lockFD != -1) virPidFileRelease(_driver->stateDir, "driver", _driver->lockFD); - VIR_FREE(_driver->stateDir); + g_free(_driver->stateDir); } -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/access/viraccessmanager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/access/viraccessmanager.c b/src/access/viraccessmanager.c index 02e4464ef5..c81d0840b3 100644 --- a/src/access/viraccessmanager.c +++ b/src/access/viraccessmanager.c @@ -190,7 +190,7 @@ static void virAccessManagerDispose(void *object) if (mgr->drv->cleanup) mgr->drv->cleanup(mgr); - VIR_FREE(mgr->privateData); + g_free(mgr->privateData); } -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/hypervisor/virhostdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hypervisor/virhostdev.c b/src/hypervisor/virhostdev.c index 09995a52ed..743aaa84d6 100644 --- a/src/hypervisor/virhostdev.c +++ b/src/hypervisor/virhostdev.c @@ -135,7 +135,7 @@ virHostdevManagerDispose(void *obj) virObjectUnref(hostdevMgr->activeSCSIVHostHostdevs); virObjectUnref(hostdevMgr->activeMediatedHostdevs); virObjectUnref(hostdevMgr->activeNVMeHostdevs); - VIR_FREE(hostdevMgr->stateDir); + g_free(hostdevMgr->stateDir); } static virHostdevManagerPtr -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/logging/log_handler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/logging/log_handler.c b/src/logging/log_handler.c index 45a4763525..a77c1e0250 100644 --- a/src/logging/log_handler.c +++ b/src/logging/log_handler.c @@ -352,7 +352,7 @@ virLogHandlerDispose(void *obj) handler->inhibitor(false, handler->opaque); virLogHandlerLogFileFree(handler->files[i]); } - VIR_FREE(handler->files); + g_free(handler->files); } -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/rpc/virnetclient.c | 4 ++-- src/rpc/virnetdaemon.c | 6 +++--- src/rpc/virnetlibsshsession.c | 18 +++++++++--------- src/rpc/virnetsaslcontext.c | 2 +- src/rpc/virnetserver.c | 8 ++++---- src/rpc/virnetserverservice.c | 2 +- src/rpc/virnetsocket.c | 6 +++--- src/rpc/virnetsshsession.c | 8 ++++---- src/rpc/virnettlscontext.c | 6 +++--- 9 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c index 2eabacd6e8..edd65941ac 100644 --- a/src/rpc/virnetclient.c +++ b/src/rpc/virnetclient.c @@ -747,12 +747,12 @@ void virNetClientDispose(void *obj) for (i = 0; i < client->nprograms; i++) virObjectUnref(client->programs[i]); - VIR_FREE(client->programs); + g_free(client->programs); g_main_loop_unref(client->eventLoop); g_main_context_unref(client->eventCtx); - VIR_FREE(client->hostname); + g_free(client->hostname); if (client->sock) virNetSocketRemoveIOCallback(client->sock); diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c index e337ff1fde..2c18da790b 100644 --- a/src/rpc/virnetdaemon.c +++ b/src/rpc/virnetdaemon.c @@ -99,9 +99,9 @@ virNetDaemonDispose(void *obj) for (i = 0; i < dmn->nsignals; i++) { sigaction(dmn->signals[i]->signum, &dmn->signals[i]->oldaction, NULL); - VIR_FREE(dmn->signals[i]); + g_free(dmn->signals[i]); } - VIR_FREE(dmn->signals); + g_free(dmn->signals); VIR_FORCE_CLOSE(dmn->sigread); VIR_FORCE_CLOSE(dmn->sigwrite); if (dmn->sigwatch > 0) @@ -109,7 +109,7 @@ virNetDaemonDispose(void *obj) #endif /* !WIN32 */ VIR_FORCE_CLOSE(dmn->autoShutdownInhibitFd); - VIR_FREE(dmn->stateStopThread); + g_free(dmn->stateStopThread); virHashFree(dmn->servers); diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c index 48ef914c70..8814487557 100644 --- a/src/rpc/virnetlibsshsession.c +++ b/src/rpc/virnetlibsshsession.c @@ -132,18 +132,18 @@ virNetLibsshSessionDispose(void *obj) for (i = 0; i < sess->nauths; i++) { virSecureEraseString(sess->auths[i]->password); - VIR_FREE(sess->auths[i]->password); - VIR_FREE(sess->auths[i]->filename); - VIR_FREE(sess->auths[i]); + g_free(sess->auths[i]->password); + g_free(sess->auths[i]->filename); + g_free(sess->auths[i]); } - VIR_FREE(sess->auths); + g_free(sess->auths); - VIR_FREE(sess->channelCommand); - VIR_FREE(sess->hostname); - VIR_FREE(sess->knownHostsFile); - VIR_FREE(sess->authPath); - VIR_FREE(sess->username); + g_free(sess->channelCommand); + g_free(sess->hostname); + g_free(sess->knownHostsFile); + g_free(sess->authPath); + g_free(sess->username); } static virClassPtr virNetLibsshSessionClass; diff --git a/src/rpc/virnetsaslcontext.c b/src/rpc/virnetsaslcontext.c index 9253771787..8a6250120d 100644 --- a/src/rpc/virnetsaslcontext.c +++ b/src/rpc/virnetsaslcontext.c @@ -699,7 +699,7 @@ void virNetSASLSessionDispose(void *obj) if (sasl->conn) sasl_dispose(&sasl->conn); - VIR_FREE(sasl->callbacks); + g_free(sasl->callbacks); } #ifdef __APPLE__ diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c index fa63acbb09..f0b866a962 100644 --- a/src/rpc/virnetserver.c +++ b/src/rpc/virnetserver.c @@ -909,21 +909,21 @@ void virNetServerDispose(void *obj) virNetServerPtr srv = obj; size_t i; - VIR_FREE(srv->name); + g_free(srv->name); virThreadPoolFree(srv->workers); for (i = 0; i < srv->nservices; i++) virObjectUnref(srv->services[i]); - VIR_FREE(srv->services); + g_free(srv->services); for (i = 0; i < srv->nprograms; i++) virObjectUnref(srv->programs[i]); - VIR_FREE(srv->programs); + g_free(srv->programs); for (i = 0; i < srv->nclients; i++) virObjectUnref(srv->clients[i]); - VIR_FREE(srv->clients); + g_free(srv->clients); } void virNetServerClose(virNetServerPtr srv) diff --git a/src/rpc/virnetserverservice.c b/src/rpc/virnetserverservice.c index 317cacf25b..73232e3747 100644 --- a/src/rpc/virnetserverservice.c +++ b/src/rpc/virnetserverservice.c @@ -419,7 +419,7 @@ void virNetServerServiceDispose(void *obj) for (i = 0; i < svc->nsocks; i++) virObjectUnref(svc->socks[i]); - VIR_FREE(svc->socks); + g_free(svc->socks); virObjectUnref(svc->tls); } diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index e56d43ba85..d0dc59c10c 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -1356,9 +1356,9 @@ void virNetSocketDispose(void *obj) virProcessAbort(sock->pid); - VIR_FREE(sock->localAddrStrSASL); - VIR_FREE(sock->remoteAddrStrSASL); - VIR_FREE(sock->remoteAddrStrURI); + g_free(sock->localAddrStrSASL); + g_free(sock->remoteAddrStrSASL); + g_free(sock->remoteAddrStrURI); } diff --git a/src/rpc/virnetsshsession.c b/src/rpc/virnetsshsession.c index 5bfe311544..f42aed3f62 100644 --- a/src/rpc/virnetsshsession.c +++ b/src/rpc/virnetsshsession.c @@ -151,10 +151,10 @@ virNetSSHSessionDispose(void *obj) virNetSSHSessionAuthMethodsClear(sess); - VIR_FREE(sess->channelCommand); - VIR_FREE(sess->hostname); - VIR_FREE(sess->knownHostsFile); - VIR_FREE(sess->authPath); + g_free(sess->channelCommand); + g_free(sess->hostname); + g_free(sess->knownHostsFile); + g_free(sess->authPath); } static virClassPtr virNetSSHSessionClass; diff --git a/src/rpc/virnettlscontext.c b/src/rpc/virnettlscontext.c index 84f7e63e4d..2936b8ba57 100644 --- a/src/rpc/virnettlscontext.c +++ b/src/rpc/virnettlscontext.c @@ -1146,7 +1146,7 @@ void virNetTLSContextDispose(void *obj) PROBE(RPC_TLS_CONTEXT_DISPOSE, "ctxt=%p", ctxt); - VIR_FREE(ctxt->priority); + g_free(ctxt->priority); gnutls_dh_params_deinit(ctxt->dhParams); gnutls_certificate_free_credentials(ctxt->x509cred); } @@ -1415,8 +1415,8 @@ void virNetTLSSessionDispose(void *obj) PROBE(RPC_TLS_SESSION_DISPOSE, "sess=%p", sess); - VIR_FREE(sess->x509dname); - VIR_FREE(sess->hostname); + g_free(sess->x509dname); + g_free(sess->hostname); gnutls_deinit(sess->session); } -- 2.29.2

This patch does not apply cleanly. The reason: On 2/4/21 1:38 AM, Laine Stump wrote:
Signed-off-by: Laine Stump <laine@redhat.com> --- src/rpc/virnetclient.c | 4 ++-- src/rpc/virnetdaemon.c | 6 +++--- src/rpc/virnetlibsshsession.c | 18 +++++++++--------- src/rpc/virnetsaslcontext.c | 2 +- src/rpc/virnetserver.c | 8 ++++---- src/rpc/virnetserverservice.c | 2 +- src/rpc/virnetsocket.c | 6 +++--- src/rpc/virnetsshsession.c | 8 ++++---- src/rpc/virnettlscontext.c | 6 +++--- 9 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c index 2eabacd6e8..edd65941ac 100644 --- a/src/rpc/virnetclient.c +++ b/src/rpc/virnetclient.c @@ -747,12 +747,12 @@ void virNetClientDispose(void *obj)
[...]
diff --git a/src/rpc/virnetsshsession.c b/src/rpc/virnetsshsession.c index 5bfe311544..f42aed3f62 100644 --- a/src/rpc/virnetsshsession.c +++ b/src/rpc/virnetsshsession.c @@ -151,10 +151,10 @@ virNetSSHSessionDispose(void *obj)
virNetSSHSessionAuthMethodsClear(sess);
- VIR_FREE(sess->channelCommand); - VIR_FREE(sess->hostname); - VIR_FREE(sess->knownHostsFile); - VIR_FREE(sess->authPath); + g_free(sess->channelCommand); + g_free(sess->hostname); + g_free(sess->knownHostsFile); + g_free(sess->authPath); }
This chunk here is referencing virNetSSHSessionAuthMethodsClear(). The name of the function in the master branch is virNetSSHSessionAuthMethodsFree(). It seems to me that you had patch 24 of the previous series applied in the tree when doing this series, and this is why the patch is considering the renamed function. This patch itself looks fine to me otherwise. You can either fix it to be applicable based on master, or you can push the other series that has "[libvirt PATCH v2 24/24] rpc: rename virNetSessionAuthMethodsFree to virNetSessionAuthMethodsClear" before pushing this one. Thanks, DHB
static virClassPtr virNetSSHSessionClass; diff --git a/src/rpc/virnettlscontext.c b/src/rpc/virnettlscontext.c index 84f7e63e4d..2936b8ba57 100644 --- a/src/rpc/virnettlscontext.c +++ b/src/rpc/virnettlscontext.c @@ -1146,7 +1146,7 @@ void virNetTLSContextDispose(void *obj) PROBE(RPC_TLS_CONTEXT_DISPOSE, "ctxt=%p", ctxt);
- VIR_FREE(ctxt->priority); + g_free(ctxt->priority); gnutls_dh_params_deinit(ctxt->dhParams); gnutls_certificate_free_credentials(ctxt->x509cred); } @@ -1415,8 +1415,8 @@ void virNetTLSSessionDispose(void *obj) PROBE(RPC_TLS_SESSION_DISPOSE, "sess=%p", sess);
- VIR_FREE(sess->x509dname); - VIR_FREE(sess->hostname); + g_free(sess->x509dname); + g_free(sess->hostname); gnutls_deinit(sess->session); }

Signed-off-by: Laine Stump <laine@redhat.com> --- src/security/security_manager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/security/security_manager.c b/src/security/security_manager.c index be81ee5e44..67ede11981 100644 --- a/src/security/security_manager.c +++ b/src/security/security_manager.c @@ -55,7 +55,7 @@ void virSecurityManagerDispose(void *obj) if (mgr->drv->close) mgr->drv->close(mgr); - VIR_FREE(mgr->privateData); + g_free(mgr->privateData); } -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/util/virdnsmasq.c | 2 +- src/util/virfilecache.c | 4 ++-- src/util/virmdev.c | 2 +- src/util/virnvme.c | 2 +- src/util/virpci.c | 2 +- src/util/virresctrl.c | 40 ++++++++++++++++++++-------------------- src/util/virscsi.c | 2 +- src/util/virscsivhost.c | 2 +- src/util/virusb.c | 2 +- 9 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/util/virdnsmasq.c b/src/util/virdnsmasq.c index 653d46bef9..3eee4a5a84 100644 --- a/src/util/virdnsmasq.c +++ b/src/util/virdnsmasq.c @@ -604,7 +604,7 @@ dnsmasqCapsDispose(void *obj) dnsmasqCapsPtr caps = obj; virBitmapFree(caps->flags); - VIR_FREE(caps->binaryPath); + g_free(caps->binaryPath); } static int dnsmasqCapsOnceInit(void) diff --git a/src/util/virfilecache.c b/src/util/virfilecache.c index a761a01b25..14b2885505 100644 --- a/src/util/virfilecache.c +++ b/src/util/virfilecache.c @@ -74,8 +74,8 @@ virFileCacheDispose(void *obj) { virFileCachePtr cache = obj; - VIR_FREE(cache->dir); - VIR_FREE(cache->suffix); + g_free(cache->dir); + g_free(cache->suffix); virHashFree(cache->table); diff --git a/src/util/virmdev.c b/src/util/virmdev.c index 1f5c2cba30..db40fe8cc3 100644 --- a/src/util/virmdev.c +++ b/src/util/virmdev.c @@ -297,7 +297,7 @@ virMediatedDeviceListDispose(void *obj) } list->count = 0; - VIR_FREE(list->devs); + g_free(list->devs); } diff --git a/src/util/virnvme.c b/src/util/virnvme.c index af297552c1..a1fc9aab57 100644 --- a/src/util/virnvme.c +++ b/src/util/virnvme.c @@ -166,7 +166,7 @@ virNVMeDeviceListDispose(void *obj) for (i = 0; i < list->count; i++) virNVMeDeviceFree(list->devs[i]); - VIR_FREE(list->devs); + g_free(list->devs); } diff --git a/src/util/virpci.c b/src/util/virpci.c index b8e8422aa0..8147ce11e9 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -1667,7 +1667,7 @@ virPCIDeviceListDispose(void *obj) } list->count = 0; - VIR_FREE(list->devs); + g_free(list->devs); } int diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c index 4ee95aa232..29df51c652 100644 --- a/src/util/virresctrl.c +++ b/src/util/virresctrl.c @@ -210,18 +210,18 @@ virResctrlInfoDispose(void *obj) if (level->types) { for (j = 0; j < VIR_CACHE_TYPE_LAST; j++) - VIR_FREE(level->types[j]); + g_free(level->types[j]); } - VIR_FREE(level->types); - VIR_FREE(level); + g_free(level->types); + g_free(level); } if (resctrl->monitor_info) g_strfreev(resctrl->monitor_info->features); - VIR_FREE(resctrl->membw_info); - VIR_FREE(resctrl->levels); - VIR_FREE(resctrl->monitor_info); + g_free(resctrl->membw_info); + g_free(resctrl->levels); + g_free(resctrl->monitor_info); } @@ -396,30 +396,30 @@ virResctrlAllocDispose(void *obj) continue; for (k = 0; k < type->nsizes; k++) - VIR_FREE(type->sizes[k]); + g_free(type->sizes[k]); for (k = 0; k < type->nmasks; k++) virBitmapFree(type->masks[k]); - VIR_FREE(type->sizes); - VIR_FREE(type->masks); - VIR_FREE(type); + g_free(type->sizes); + g_free(type->masks); + g_free(type); } - VIR_FREE(level->types); - VIR_FREE(level); + g_free(level->types); + g_free(level); } if (alloc->mem_bw) { virResctrlAllocMemBWPtr mem_bw = alloc->mem_bw; for (i = 0; i < mem_bw->nbandwidths; i++) - VIR_FREE(mem_bw->bandwidths[i]); - VIR_FREE(alloc->mem_bw->bandwidths); - VIR_FREE(alloc->mem_bw); + g_free(mem_bw->bandwidths[i]); + g_free(alloc->mem_bw->bandwidths); + g_free(alloc->mem_bw); } - VIR_FREE(alloc->id); - VIR_FREE(alloc->path); - VIR_FREE(alloc->levels); + g_free(alloc->id); + g_free(alloc->path); + g_free(alloc->levels); } @@ -429,8 +429,8 @@ virResctrlMonitorDispose(void *obj) virResctrlMonitorPtr monitor = obj; virObjectUnref(monitor->alloc); - VIR_FREE(monitor->id); - VIR_FREE(monitor->path); + g_free(monitor->id); + g_free(monitor->path); } diff --git a/src/util/virscsi.c b/src/util/virscsi.c index 0c753c075e..2a9f6da76a 100644 --- a/src/util/virscsi.c +++ b/src/util/virscsi.c @@ -347,7 +347,7 @@ virSCSIDeviceListDispose(void *obj) for (i = 0; i < list->count; i++) virSCSIDeviceFree(list->devs[i]); - VIR_FREE(list->devs); + g_free(list->devs); } int diff --git a/src/util/virscsivhost.c b/src/util/virscsivhost.c index 5907edbc7e..b7bf0da1b3 100644 --- a/src/util/virscsivhost.c +++ b/src/util/virscsivhost.c @@ -60,7 +60,7 @@ virSCSIVHostDeviceListDispose(void *obj) for (i = 0; i < list->count; i++) virSCSIVHostDeviceFree(list->devs[i]); - VIR_FREE(list->devs); + g_free(list->devs); } diff --git a/src/util/virusb.c b/src/util/virusb.c index ae400de656..6d897600e5 100644 --- a/src/util/virusb.c +++ b/src/util/virusb.c @@ -434,7 +434,7 @@ virUSBDeviceListDispose(void *obj) for (i = 0; i < list->count; i++) virUSBDeviceFree(list->devs[i]); - VIR_FREE(list->devs); + g_free(list->devs); } int -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/conf/capabilities.c | 22 +++++++------- src/conf/checkpoint_conf.c | 2 +- src/conf/domain_capabilities.c | 12 ++++---- src/conf/domain_conf.c | 2 +- src/conf/domain_event.c | 52 +++++++++++++++++----------------- src/conf/moment_conf.c | 6 ++-- src/conf/object_event.c | 4 +-- src/conf/snapshot_conf.c | 4 +-- src/conf/virsecretobj.c | 6 ++-- src/conf/virstorageobj.c | 4 +-- 10 files changed, 57 insertions(+), 57 deletions(-) diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 02fbf60b02..dd3321db9a 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -232,39 +232,39 @@ virCapsDispose(void *object) for (i = 0; i < caps->npools; i++) virCapabilitiesFreeStoragePool(caps->pools[i]); - VIR_FREE(caps->pools); + g_free(caps->pools); for (i = 0; i < caps->nguests; i++) virCapabilitiesFreeGuest(caps->guests[i]); - VIR_FREE(caps->guests); + g_free(caps->guests); for (i = 0; i < caps->host.nfeatures; i++) - VIR_FREE(caps->host.features[i]); - VIR_FREE(caps->host.features); + g_free(caps->host.features[i]); + g_free(caps->host.features); if (caps->host.numa) virCapabilitiesHostNUMAUnref(caps->host.numa); for (i = 0; i < caps->host.nmigrateTrans; i++) - VIR_FREE(caps->host.migrateTrans[i]); - VIR_FREE(caps->host.migrateTrans); + g_free(caps->host.migrateTrans[i]); + g_free(caps->host.migrateTrans); for (i = 0; i < caps->host.nsecModels; i++) virCapabilitiesClearSecModel(&caps->host.secModels[i]); - VIR_FREE(caps->host.secModels); + g_free(caps->host.secModels); for (i = 0; i < caps->host.cache.nbanks; i++) virCapsHostCacheBankFree(caps->host.cache.banks[i]); virResctrlInfoMonFree(caps->host.cache.monitor); - VIR_FREE(caps->host.cache.banks); + g_free(caps->host.cache.banks); for (i = 0; i < caps->host.memBW.nnodes; i++) virCapsHostMemBWNodeFree(caps->host.memBW.nodes[i]); virResctrlInfoMonFree(caps->host.memBW.monitor); - VIR_FREE(caps->host.memBW.nodes); + g_free(caps->host.memBW.nodes); - VIR_FREE(caps->host.netprefix); - VIR_FREE(caps->host.pagesSize); + g_free(caps->host.netprefix); + g_free(caps->host.pagesSize); virCPUDefFree(caps->host.cpu); virObjectUnref(caps->host.resctrl); } diff --git a/src/conf/checkpoint_conf.c b/src/conf/checkpoint_conf.c index 16fb138a3e..f8704852e0 100644 --- a/src/conf/checkpoint_conf.c +++ b/src/conf/checkpoint_conf.c @@ -87,7 +87,7 @@ virDomainCheckpointDefDispose(void *obj) for (i = 0; i < def->ndisks; i++) virDomainCheckpointDiskDefClear(&def->disks[i]); - VIR_FREE(def->disks); + g_free(def->disks); } static int diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 407cf0348a..8605216cf7 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -84,16 +84,16 @@ virDomainCapsDispose(void *obj) virDomainCapsStringValuesPtr values; size_t i; - VIR_FREE(caps->path); - VIR_FREE(caps->machine); + g_free(caps->path); + g_free(caps->machine); virObjectUnref(caps->cpu.custom); virCPUDefFree(caps->cpu.hostModel); virSEVCapabilitiesFree(caps->sev); values = &caps->os.loader.values; for (i = 0; i < values->nvalues; i++) - VIR_FREE(values->values[i]); - VIR_FREE(values->values); + g_free(values->values[i]); + g_free(values->values); } @@ -104,11 +104,11 @@ virDomainCapsCPUModelsDispose(void *obj) size_t i; for (i = 0; i < cpuModels->nmodels; i++) { - VIR_FREE(cpuModels->models[i].name); + g_free(cpuModels->models[i].name); g_strfreev(cpuModels->models[i].blockers); } - VIR_FREE(cpuModels->models); + g_free(cpuModels->models); } diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 3f71297283..07e6f39256 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2699,7 +2699,7 @@ virDomainChrSourceDefDispose(void *obj) if (def->seclabels) { for (i = 0; i < def->nseclabels; i++) virSecurityDeviceLabelDefFree(def->seclabels[i]); - VIR_FREE(def->seclabels); + g_free(def->seclabels); } } diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c index 0fde3481ed..726a792dae 100644 --- a/src/conf/domain_event.c +++ b/src/conf/domain_event.c @@ -387,9 +387,9 @@ virDomainEventIOErrorDispose(void *obj) virDomainEventIOErrorPtr event = obj; VIR_DEBUG("obj=%p", event); - VIR_FREE(event->srcPath); - VIR_FREE(event->devAlias); - VIR_FREE(event->reason); + g_free(event->srcPath); + g_free(event->devAlias); + g_free(event->reason); } static void @@ -399,23 +399,23 @@ virDomainEventGraphicsDispose(void *obj) VIR_DEBUG("obj=%p", event); if (event->local) { - VIR_FREE(event->local->node); - VIR_FREE(event->local->service); - VIR_FREE(event->local); + g_free(event->local->node); + g_free(event->local->service); + g_free(event->local); } if (event->remote) { - VIR_FREE(event->remote->node); - VIR_FREE(event->remote->service); - VIR_FREE(event->remote); + g_free(event->remote->node); + g_free(event->remote->service); + g_free(event->remote); } - VIR_FREE(event->authScheme); + g_free(event->authScheme); if (event->subject) { size_t i; for (i = 0; i < event->subject->nidentity; i++) { - VIR_FREE(event->subject->identities[i].type); - VIR_FREE(event->subject->identities[i].name); + g_free(event->subject->identities[i].type); + g_free(event->subject->identities[i].name); } - VIR_FREE(event->subject); + g_free(event->subject); } } @@ -425,7 +425,7 @@ virDomainEventBlockJobDispose(void *obj) virDomainEventBlockJobPtr event = obj; VIR_DEBUG("obj=%p", event); - VIR_FREE(event->disk); + g_free(event->disk); } static void @@ -434,9 +434,9 @@ virDomainEventDiskChangeDispose(void *obj) virDomainEventDiskChangePtr event = obj; VIR_DEBUG("obj=%p", event); - VIR_FREE(event->oldSrcPath); - VIR_FREE(event->newSrcPath); - VIR_FREE(event->devAlias); + g_free(event->oldSrcPath); + g_free(event->newSrcPath); + g_free(event->devAlias); } static void @@ -445,7 +445,7 @@ virDomainEventTrayChangeDispose(void *obj) virDomainEventTrayChangePtr event = obj; VIR_DEBUG("obj=%p", event); - VIR_FREE(event->devAlias); + g_free(event->devAlias); } static void @@ -461,7 +461,7 @@ virDomainEventDeviceRemovedDispose(void *obj) virDomainEventDeviceRemovedPtr event = obj; VIR_DEBUG("obj=%p", event); - VIR_FREE(event->devAlias); + g_free(event->devAlias); } static void @@ -470,7 +470,7 @@ virDomainEventDeviceAddedDispose(void *obj) virDomainEventDeviceAddedPtr event = obj; VIR_DEBUG("obj=%p", event); - VIR_FREE(event->devAlias); + g_free(event->devAlias); } @@ -480,7 +480,7 @@ virDomainEventDeviceRemovalFailedDispose(void *obj) virDomainEventDeviceRemovalFailedPtr event = obj; VIR_DEBUG("obj=%p", event); - VIR_FREE(event->devAlias); + g_free(event->devAlias); } @@ -497,8 +497,8 @@ virDomainQemuMonitorEventDispose(void *obj) virDomainQemuMonitorEventPtr event = obj; VIR_DEBUG("obj=%p", event); - VIR_FREE(event->event); - VIR_FREE(event->details); + g_free(event->event); + g_free(event->details); } static void @@ -540,7 +540,7 @@ virDomainEventMetadataChangeDispose(void *obj) virDomainEventMetadataChangePtr event = obj; VIR_DEBUG("obj=%p", event); - VIR_FREE(event->nsuri); + g_free(event->nsuri); } @@ -550,8 +550,8 @@ virDomainEventBlockThresholdDispose(void *obj) virDomainEventBlockThresholdPtr event = obj; VIR_DEBUG("obj=%p", event); - VIR_FREE(event->dev); - VIR_FREE(event->path); + g_free(event->dev); + g_free(event->path); } diff --git a/src/conf/moment_conf.c b/src/conf/moment_conf.c index fb6f7824cb..c643cbf6d6 100644 --- a/src/conf/moment_conf.c +++ b/src/conf/moment_conf.c @@ -62,9 +62,9 @@ virDomainMomentDefDispose(void *obj) { virDomainMomentDefPtr def = obj; - VIR_FREE(def->name); - VIR_FREE(def->description); - VIR_FREE(def->parent_name); + g_free(def->name); + g_free(def->description); + g_free(def->parent_name); virDomainDefFree(def->dom); virDomainDefFree(def->inactiveDom); } diff --git a/src/conf/object_event.c b/src/conf/object_event.c index 907aa6d06a..5d7d45355e 100644 --- a/src/conf/object_event.c +++ b/src/conf/object_event.c @@ -123,8 +123,8 @@ virObjectEventDispose(void *obj) VIR_DEBUG("obj=%p", event); - VIR_FREE(event->meta.name); - VIR_FREE(event->meta.key); + g_free(event->meta.name); + g_free(event->meta.key); } /** diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c index df88a0bc72..36ce1a08ca 100644 --- a/src/conf/snapshot_conf.c +++ b/src/conf/snapshot_conf.c @@ -125,10 +125,10 @@ virDomainSnapshotDefDispose(void *obj) virDomainSnapshotDefPtr def = obj; size_t i; - VIR_FREE(def->file); + g_free(def->file); for (i = 0; i < def->ndisks; i++) virDomainSnapshotDiskDefClear(&def->disks[i]); - VIR_FREE(def->disks); + g_free(def->disks); virObjectUnref(def->cookie); } diff --git a/src/conf/virsecretobj.c b/src/conf/virsecretobj.c index a1b750fb05..fd27bb1f01 100644 --- a/src/conf/virsecretobj.c +++ b/src/conf/virsecretobj.c @@ -137,10 +137,10 @@ virSecretObjDispose(void *opaque) if (obj->value) { /* Wipe before free to ensure we don't leave a secret on the heap */ memset(obj->value, 0, obj->value_size); - VIR_FREE(obj->value); + g_free(obj->value); } - VIR_FREE(obj->configFile); - VIR_FREE(obj->base64File); + g_free(obj->configFile); + g_free(obj->base64File); } diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 9fe8b3f28e..6a8874b1fb 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -378,8 +378,8 @@ virStoragePoolObjDispose(void *opaque) virStoragePoolDefFree(obj->def); virStoragePoolDefFree(obj->newDef); - VIR_FREE(obj->configFile); - VIR_FREE(obj->autostartLink); + g_free(obj->configFile); + g_free(obj->autostartLink); } -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- tests/virfilecachetest.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/virfilecachetest.c b/tests/virfilecachetest.c index 34e0d0ab2f..4d65c0c6ce 100644 --- a/tests/virfilecachetest.c +++ b/tests/virfilecachetest.c @@ -43,7 +43,7 @@ static void testFileCacheObjDispose(void *opaque) { testFileCacheObjPtr obj = opaque; - VIR_FREE(obj->data); + g_free(obj->data); } -- 2.29.2

Signed-off-by: Laine Stump <laine@redhat.com> --- src/datatypes.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/datatypes.c b/src/datatypes.c index 1db38c5aa6..e36f3a2d24 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -347,7 +347,7 @@ virDomainDispose(void *obj) virUUIDFormat(domain->uuid, uuidstr); VIR_DEBUG("release domain %p %s %s", domain, domain->name, uuidstr); - VIR_FREE(domain->name); + g_free(domain->name); virObjectUnref(domain->conn); } @@ -409,7 +409,7 @@ virNetworkDispose(void *obj) virUUIDFormat(network->uuid, uuidstr); VIR_DEBUG("release network %p %s %s", network, network->name, uuidstr); - VIR_FREE(network->name); + g_free(network->name); virObjectUnref(network->conn); } @@ -528,8 +528,8 @@ virInterfaceDispose(void *obj) virInterfacePtr iface = obj; VIR_DEBUG("release interface %p %s", iface, iface->name); - VIR_FREE(iface->name); - VIR_FREE(iface->mac); + g_free(iface->name); + g_free(iface->mac); virObjectUnref(iface->conn); } @@ -603,7 +603,7 @@ virStoragePoolDispose(void *obj) if (pool->privateDataFreeFunc) pool->privateDataFreeFunc(pool->privateData); - VIR_FREE(pool->name); + g_free(pool->name); virObjectUnref(pool->conn); } @@ -676,9 +676,9 @@ virStorageVolDispose(void *obj) if (vol->privateDataFreeFunc) vol->privateDataFreeFunc(vol->privateData); - VIR_FREE(vol->key); - VIR_FREE(vol->name); - VIR_FREE(vol->pool); + g_free(vol->key); + g_free(vol->name); + g_free(vol->pool); virObjectUnref(vol->conn); } @@ -734,8 +734,8 @@ virNodeDeviceDispose(void *obj) virNodeDevicePtr dev = obj; VIR_DEBUG("release dev %p %s", dev, dev->name); - VIR_FREE(dev->name); - VIR_FREE(dev->parentName); + g_free(dev->name); + g_free(dev->parentName); virObjectUnref(dev->conn); } @@ -798,7 +798,7 @@ virSecretDispose(void *obj) virUUIDFormat(secret->uuid, uuidstr); VIR_DEBUG("release secret %p %s", secret, uuidstr); - VIR_FREE(secret->usageID); + g_free(secret->usageID); virObjectUnref(secret->conn); } @@ -910,7 +910,7 @@ virNWFilterDispose(void *obj) virUUIDFormat(nwfilter->uuid, uuidstr); VIR_DEBUG("release nwfilter %p %s %s", nwfilter, nwfilter->name, uuidstr); - VIR_FREE(nwfilter->name); + g_free(nwfilter->name); virObjectUnref(nwfilter->conn); } @@ -972,8 +972,8 @@ virNWFilterBindingDispose(void *obj) VIR_DEBUG("release binding %p %s", binding, binding->portdev); - VIR_FREE(binding->portdev); - VIR_FREE(binding->filtername); + g_free(binding->portdev); + g_free(binding->filtername); virObjectUnref(binding->conn); } @@ -1030,7 +1030,7 @@ virDomainCheckpointDispose(void *obj) virDomainCheckpointPtr checkpoint = obj; VIR_DEBUG("release checkpoint %p %s", checkpoint, checkpoint->name); - VIR_FREE(checkpoint->name); + g_free(checkpoint->name); virObjectUnref(checkpoint->domain); } @@ -1086,7 +1086,7 @@ virDomainSnapshotDispose(void *obj) virDomainSnapshotPtr snapshot = obj; VIR_DEBUG("release snapshot %p %s", snapshot, snapshot->name); - VIR_FREE(snapshot->name); + g_free(snapshot->name); virObjectUnref(snapshot->domain); } @@ -1222,7 +1222,7 @@ virAdmServerDispose(void *obj) virAdmServerPtr srv = obj; VIR_DEBUG("release server srv=%p name=%s", srv, srv->name); - VIR_FREE(srv->name); + g_free(srv->name); virObjectUnref(srv->conn); } -- 2.29.2

On 2/4/21 1:38 AM, Laine Stump wrote:
A *Dispose() function is similar to a *Free() function, except that 1) the object is always sent as a void* so it has to be typecast into some other object-specific pointer at the top of the function, and 2) it frees all the resources inside the object, but never frees the object itself (this is done by the caller, somewhere deep in the bowels of virObjectDispose or something I guess; frankly I've always ignored the details simply "because I could").
The important point is that the contents of the object are never referenced in any way after return from the Dispose function, so it is unnecessary to clear any pointers, ergo (always wanted to use that word!) it's completely safe to replace all VIR_FREEs in a *Dispose() function with g_free (as long as there's nothing within the Dispose function itself that depends on the pointers being cleared).
After this series is applied, there will be exactly 0 instances of VIR_FREE in any *Dispose() (or *Free()) function. As with the *Free() series, almost all were accomplished by directly replacing VIR_FREE with g_free, but there were a couple oddities that needed separate patches just to call them out:
* Patch 1 & 2 - in both cases a Dispose() function was the only caller to a *Free() function that didn't fit the normal pattern of a *Free() function. Since each of the Free()s had only one caller (their respective *Dispose() parents), their contents were just moved into the caller, clearing the way for their VIR_FREEs to be g_free-ified (in later patches, along with the other *Dispose() functions in the same directories).
220 VIR_FREE uses eliminated in this series, so a total of 762 for the two series combined (nearly 20% of all remaining VIR_FREEs).
Laine Stump (15): conf: simplify virDomainCapsDispose() rpc: eliminate static function virNetLibsshSessionAuthMethodsFree() bhyve: replace VIR_FREE with g_free in all *Dispose() functions libxl: replace VIR_FREE with g_free in all *Dispose() functions qemu: replace VIR_FREE with g_free in all *Dispose() functions interface: replace VIR_FREE with g_free in all *Dispose() functions access: replace VIR_FREE with g_free in all *Dispose() functions hypervisor: replace VIR_FREE with g_free in all *Dispose() functions logging: replace VIR_FREE with g_free in all *Dispose() functions rpc: replace VIR_FREE with g_free in all *Dispose() functions security: replace VIR_FREE with g_free in all *Dispose() functions util: replace VIR_FREE with g_free in all *Dispose() functions conf: replace VIR_FREE with g_free in all *Dispose() functions tests: replace VIR_FREE with g_free in all *Dispose() functions datatypes: replace VIR_FREE with g_free in all *Dispose() functions
Series LGTM, just be careful with what I mentioned in patch 10. All patches: Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/access/viraccessmanager.c | 2 +- src/bhyve/bhyve_conf.c | 2 +- src/conf/capabilities.c | 22 ++--- src/conf/checkpoint_conf.c | 2 +- src/conf/domain_capabilities.c | 29 ++---- src/conf/domain_conf.c | 2 +- src/conf/domain_event.c | 52 +++++----- src/conf/moment_conf.c | 6 +- src/conf/object_event.c | 4 +- src/conf/snapshot_conf.c | 4 +- src/conf/virsecretobj.c | 6 +- src/conf/virstorageobj.c | 4 +- src/datatypes.c | 34 +++---- src/hypervisor/virhostdev.c | 2 +- src/interface/interface_backend_netcf.c | 2 +- src/libxl/libxl_conf.c | 20 ++-- src/libxl/libxl_migration.c | 2 +- src/logging/log_handler.c | 2 +- src/qemu/qemu_agent.c | 2 +- src/qemu/qemu_capabilities.c | 10 +- src/qemu/qemu_conf.c | 122 ++++++++++++------------ src/qemu/qemu_domain.c | 10 +- src/qemu/qemu_monitor.c | 4 +- src/rpc/virnetclient.c | 4 +- src/rpc/virnetdaemon.c | 6 +- src/rpc/virnetlibsshsession.c | 37 +++---- src/rpc/virnetsaslcontext.c | 2 +- src/rpc/virnetserver.c | 8 +- src/rpc/virnetserverservice.c | 2 +- src/rpc/virnetsocket.c | 6 +- src/rpc/virnetsshsession.c | 8 +- src/rpc/virnettlscontext.c | 6 +- src/security/security_manager.c | 2 +- src/util/virdnsmasq.c | 2 +- src/util/virfilecache.c | 4 +- src/util/virmdev.c | 2 +- src/util/virnvme.c | 2 +- src/util/virpci.c | 2 +- src/util/virresctrl.c | 40 ++++---- src/util/virscsi.c | 2 +- src/util/virscsivhost.c | 2 +- src/util/virusb.c | 2 +- tests/virfilecachetest.c | 2 +- 43 files changed, 235 insertions(+), 251 deletions(-)
participants (2)
-
Daniel Henrique Barboza
-
Laine Stump