[PATCH V2 0/9] use g_autofree

Use g_autofree more often and remove unnecessary cleanup/error labels. diff to v1: * use g_autofree for uuid in 'virNWFilterDefParseXML' * remove unused rc in security_apparmor.c Jiang Jiacheng (9): conf: use g_autofree and remove unnecessary label interface: use g_autofree and remove unnecessary label locking: use g_autofree and remove unnecessary label remote: use g_autofree and remove unnecessary label rpc: use g_autofree and remove unnecessary label security: use g_autofree and remove unnecessary label util: use g_autofree and remove unnecessary label vmware: use g_autofree and remove unnecessary label vz: use g_autofree and remove unnecessary label src/conf/domain_audit.c | 121 ++++++++----------------- src/conf/node_device_util.c | 49 ++++------ src/conf/nwfilter_conf.c | 55 ++++------- src/conf/virnetworkobj.c | 85 ++++++----------- src/conf/virnetworkportdef.c | 12 +-- src/conf/virnwfilterbindingobj.c | 22 ++--- src/conf/virnwfilterobj.c | 19 +--- src/conf/virstorageobj.c | 23 ++--- src/interface/interface_backend_udev.c | 22 ++--- src/locking/lock_driver_lockd.c | 36 +++----- src/locking/lock_driver_sanlock.c | 46 ++++------ src/remote/remote_driver.c | 22 ++--- src/rpc/virnetclientprogram.c | 6 +- src/rpc/virnettlscontext.c | 16 +--- src/security/security_apparmor.c | 94 +++++++------------ src/util/virconf.c | 27 ++---- src/vmware/vmware_conf.c | 28 ++---- src/vz/vz_utils.c | 18 ++-- 18 files changed, 239 insertions(+), 462 deletions(-) -- 2.33.0

Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com> --- src/conf/domain_audit.c | 121 ++++++++++--------------------- src/conf/node_device_util.c | 49 +++++-------- src/conf/nwfilter_conf.c | 55 +++++--------- src/conf/virnetworkobj.c | 85 ++++++++-------------- src/conf/virnetworkportdef.c | 12 +-- src/conf/virnwfilterbindingobj.c | 22 ++---- src/conf/virnwfilterobj.c | 19 ++--- src/conf/virstorageobj.c | 23 ++---- 8 files changed, 129 insertions(+), 257 deletions(-) diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c index 82cf6ab749..ae875188bd 100644 --- a/src/conf/domain_audit.c +++ b/src/conf/domain_audit.c @@ -300,9 +300,9 @@ virDomainAuditNetDevice(virDomainDef *vmDef, virDomainNetDef *netDef, { char uuidstr[VIR_UUID_STRING_BUFLEN]; char macstr[VIR_MAC_STRING_BUFLEN]; - char *vmname; - char *dev_name = NULL; - char *rdev; + g_autofree char *vmname = NULL; + g_autofree char *dev_name = NULL; + g_autofree char *rdev = NULL; const char *virt = virDomainAuditGetVirtType(vmDef); virUUIDFormat(vmDef->uuid, uuidstr); @@ -312,17 +312,12 @@ virDomainAuditNetDevice(virDomainDef *vmDef, virDomainNetDef *netDef, if (!(vmname = virAuditEncode("vm", vmDef->name)) || !(dev_name = virAuditEncode("path", device))) { VIR_WARN("OOM while encoding audit message"); - goto cleanup; + return; } VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success, "virt=%s resrc=net reason=open %s uuid=%s net=%s %s rdev=%s", virt, vmname, uuidstr, macstr, dev_name, VIR_AUDIT_STR(rdev)); - - cleanup: - VIR_FREE(vmname); - VIR_FREE(dev_name); - VIR_FREE(rdev); } /** @@ -339,9 +334,9 @@ virDomainAuditHostdev(virDomainObj *vm, virDomainHostdevDef *hostdev, const char *reason, bool success) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *vmname; - char *address = NULL; - char *device = NULL; + g_autofree char *vmname = NULL; + g_autofree char *address = NULL; + g_autofree char *device = NULL; const char *virt = virDomainAuditGetVirtType(vm->def); virDomainHostdevSubsysUSB *usbsrc = &hostdev->source.subsys.u.usb; @@ -371,7 +366,7 @@ virDomainAuditHostdev(virDomainObj *vm, virDomainHostdevDef *hostdev, /* Follow virDomainAuditDisk && virDomainAuditGenericDev * and don't audit the networked device. */ - goto cleanup; + return; } else { virDomainHostdevSubsysSCSIHost *scsihostsrc = &scsisrc->u.host; @@ -392,12 +387,12 @@ virDomainAuditHostdev(virDomainObj *vm, virDomainHostdevDef *hostdev, default: VIR_WARN("Unexpected hostdev type while encoding audit message: %d", hostdev->source.subsys.type); - goto cleanup; + return; } if (!(device = virAuditEncode("device", VIR_AUDIT_STR(address)))) { VIR_WARN("OOM while encoding audit message"); - goto cleanup; + return; } VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success, @@ -413,7 +408,7 @@ virDomainAuditHostdev(virDomainObj *vm, virDomainHostdevDef *hostdev, if (!(device = virAuditEncode("disk", VIR_AUDIT_STR(hostdev->source.caps.u.storage.block)))) { VIR_WARN("OOM while encoding audit message"); - goto cleanup; + return; } VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success, @@ -425,7 +420,7 @@ virDomainAuditHostdev(virDomainObj *vm, virDomainHostdevDef *hostdev, if (!(device = virAuditEncode("chardev", VIR_AUDIT_STR(hostdev->source.caps.u.misc.chardev)))) { VIR_WARN("OOM while encoding audit message"); - goto cleanup; + return; } VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success, @@ -436,7 +431,7 @@ virDomainAuditHostdev(virDomainObj *vm, virDomainHostdevDef *hostdev, default: VIR_WARN("Unexpected hostdev type while encoding audit message: %d", hostdev->source.caps.type); - goto cleanup; + return; } break; @@ -444,13 +439,8 @@ virDomainAuditHostdev(virDomainObj *vm, virDomainHostdevDef *hostdev, default: VIR_WARN("Unexpected hostdev mode while encoding audit message: %d", hostdev->mode); - goto cleanup; + return; } - - cleanup: - VIR_FREE(vmname); - VIR_FREE(device); - VIR_FREE(address); } @@ -468,9 +458,9 @@ virDomainAuditRedirdev(virDomainObj *vm, virDomainRedirdevDef *redirdev, const char *reason, bool success) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *vmname; - char *address = NULL; - char *device = NULL; + g_autofree char *vmname = NULL; + g_autofree char *address = NULL; + g_autofree char *device = NULL; const char *virt = virDomainAuditGetVirtType(vm->def); virUUIDFormat(vm->def->uuid, uuidstr); @@ -486,12 +476,12 @@ virDomainAuditRedirdev(virDomainObj *vm, virDomainRedirdevDef *redirdev, default: VIR_WARN("Unexpected redirdev bus while encoding audit message: %d", redirdev->bus); - goto cleanup; + return; } if (!(device = virAuditEncode("device", VIR_AUDIT_STR(address)))) { VIR_WARN("OOM while encoding audit message"); - goto cleanup; + return; } VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success, @@ -499,11 +489,6 @@ virDomainAuditRedirdev(virDomainObj *vm, virDomainRedirdevDef *redirdev, virt, reason, vmname, uuidstr, virDomainRedirdevBusTypeToString(redirdev->bus), device); - - cleanup: - VIR_FREE(vmname); - VIR_FREE(device); - VIR_FREE(address); } @@ -522,9 +507,9 @@ virDomainAuditTPM(virDomainObj *vm, virDomainTPMDef *tpm, const char *reason, bool success) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *vmname; + g_autofree char *vmname = NULL; char *path = NULL; - char *device = NULL; + g_autofree char *device = NULL; const char *virt = virDomainAuditGetVirtType(vm->def); virUUIDFormat(vm->def->uuid, uuidstr); @@ -538,7 +523,7 @@ virDomainAuditTPM(virDomainObj *vm, virDomainTPMDef *tpm, path = tpm->data.passthrough.source->data.file.path; if (!(device = virAuditEncode("device", VIR_AUDIT_STR(path)))) { VIR_WARN("OOM while encoding audit message"); - goto cleanup; + return; } VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success, @@ -549,7 +534,7 @@ virDomainAuditTPM(virDomainObj *vm, virDomainTPMDef *tpm, path = tpm->data.emulator.source->data.nix.path; if (!(device = virAuditEncode("device", VIR_AUDIT_STR(path)))) { VIR_WARN("OOM while encoding audit message"); - goto cleanup; + return; } VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success, @@ -560,7 +545,7 @@ virDomainAuditTPM(virDomainObj *vm, virDomainTPMDef *tpm, path = tpm->data.external.source->data.nix.path; if (!(device = virAuditEncode("device", VIR_AUDIT_STR(path)))) { VIR_WARN("OOM while encoding audit message"); - goto cleanup; + return; } VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success, @@ -571,10 +556,6 @@ virDomainAuditTPM(virDomainObj *vm, virDomainTPMDef *tpm, default: break; } - - cleanup: - VIR_FREE(vmname); - VIR_FREE(device); } @@ -596,9 +577,9 @@ virDomainAuditCgroup(virDomainObj *vm, virCgroup *cgroup, const char *reason, const char *extra, bool success) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *vmname; - char *controller = NULL; - char *detail; + g_autofree char *vmname = NULL; + g_autofree char *controller = NULL; + g_autofree char *detail = NULL; const char *virt = virDomainAuditGetVirtType(vm->def); virUUIDFormat(vm->def->uuid, uuidstr); @@ -616,10 +597,6 @@ virDomainAuditCgroup(virDomainObj *vm, virCgroup *cgroup, "virt=%s resrc=cgroup reason=%s %s uuid=%s %s class=%s", virt, reason, vmname, uuidstr, detail ? detail : "cgroup=?", extra); - - VIR_FREE(vmname); - VIR_FREE(controller); - VIR_FREE(detail); } /** @@ -639,14 +616,12 @@ virDomainAuditCgroupMajor(virDomainObj *vm, virCgroup *cgroup, const char *reason, int maj, const char *name, const char *perms, bool success) { - char *extra; + g_autofree char *extra = NULL; extra = g_strdup_printf("major category=%s maj=%02X acl=%s", name, maj, perms); virDomainAuditCgroup(vm, cgroup, reason, extra, success); - - VIR_FREE(extra); } /** @@ -666,9 +641,9 @@ virDomainAuditCgroupPath(virDomainObj *vm, virCgroup *cgroup, const char *reason, const char *path, const char *perms, int rc) { - char *detail; - char *rdev; - char *extra = NULL; + g_autofree char *detail = NULL; + g_autofree char *rdev = NULL; + g_autofree char *extra = NULL; /* Nothing to audit for regular files. */ if (rc > 0) @@ -678,18 +653,13 @@ virDomainAuditCgroupPath(virDomainObj *vm, virCgroup *cgroup, if (!(detail = virAuditEncode("path", path))) { VIR_WARN("OOM while encoding audit message"); - goto cleanup; + return; } extra = g_strdup_printf("path %s rdev=%s acl=%s", detail, VIR_AUDIT_STR(rdev), perms); virDomainAuditCgroup(vm, cgroup, reason, extra, rc == 0); - - cleanup: - VIR_FREE(extra); - VIR_FREE(detail); - VIR_FREE(rdev); } /** @@ -709,7 +679,7 @@ virDomainAuditResource(virDomainObj *vm, const char *resource, const char *reason, bool success) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *vmname; + g_autofree char *vmname = NULL; const char *virt = virDomainAuditGetVirtType(vm->def); virUUIDFormat(vm->def->uuid, uuidstr); @@ -722,8 +692,6 @@ virDomainAuditResource(virDomainObj *vm, const char *resource, "virt=%s resrc=%s reason=%s %s uuid=%s old-%s=%lld new-%s=%lld", virt, resource, reason, vmname, uuidstr, resource, oldval, resource, newval); - - VIR_FREE(vmname); } void @@ -756,7 +724,7 @@ virDomainAuditLifecycle(virDomainObj *vm, const char *op, const char *reason, bool success) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *vmname; + g_autofree char *vmname = NULL; const char *virt = virDomainAuditGetVirtType(vm->def); virUUIDFormat(vm->def->uuid, uuidstr); @@ -769,8 +737,6 @@ virDomainAuditLifecycle(virDomainObj *vm, const char *op, VIR_AUDIT(VIR_AUDIT_RECORD_MACHINE_CONTROL, success, "virt=%s op=%s reason=%s %s uuid=%s vm-pid=%lld", virt, op, reason, vmname, uuidstr, (long long)vm->pid); - - VIR_FREE(vmname); } @@ -851,7 +817,7 @@ virDomainAuditInit(virDomainObj *vm, ino_t pidns) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *vmname; + g_autofree char *vmname = NULL; const char *virt = virDomainAuditGetVirtType(vm->def); virUUIDFormat(vm->def->uuid, uuidstr); @@ -865,8 +831,6 @@ virDomainAuditInit(virDomainObj *vm, "virt=%s op=init %s uuid=%s vm-pid=%lld init-pid=%lld pid-ns=%lld", virt, vmname, uuidstr, (long long)vm->pid, (long long)initpid, (long long)pidns); - - VIR_FREE(vmname); } void @@ -879,7 +843,7 @@ void virDomainAuditSecurityLabel(virDomainObj *vm, bool success) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *vmname; + g_autofree char *vmname = NULL; size_t i; const char *virt = virDomainAuditGetVirtType(vm->def); @@ -897,8 +861,6 @@ virDomainAuditSecurityLabel(virDomainObj *vm, bool success) VIR_AUDIT_STR(vm->def->seclabels[i]->imagelabel), VIR_AUDIT_STR(vm->def->seclabels[i]->model)); } - - VIR_FREE(vmname); } void @@ -907,16 +869,16 @@ virDomainAuditShmem(virDomainObj *vm, const char *reason, bool success) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *vmname = virAuditEncode("vm", vm->def->name); + g_autofree char *vmname = virAuditEncode("vm", vm->def->name); const char *srcpath = virDomainChrSourceDefGetPath(def->server.chr); const char *virt = virDomainAuditGetVirtType(vm->def); - char *shmpath = NULL; + g_autofree char *shmpath = NULL; virUUIDFormat(vm->def->uuid, uuidstr); if (!vmname) { VIR_WARN("OOM while encoding audit message"); - goto cleanup; + return; } shmpath = g_strdup_printf("/dev/shm/%s", def->name); @@ -936,11 +898,6 @@ virDomainAuditShmem(virDomainObj *vm, "virt=%s resrc=shmem reason=%s %s uuid=%s size=%llu path=%s", virt, reason, vmname, uuidstr, def->size, VIR_AUDIT_STR(shmpath)); } - - cleanup: - VIR_FREE(vmname); - VIR_FREE(shmpath); - return; } diff --git a/src/conf/node_device_util.c b/src/conf/node_device_util.c index dfec1a91ce..c2fa73afc1 100644 --- a/src/conf/node_device_util.c +++ b/src/conf/node_device_util.c @@ -78,7 +78,7 @@ virNodeDeviceCreateVport(virStorageAdapterFCHost *fchost) { unsigned int parent_host; char *name = NULL; - char *parent_hoststr = NULL; + g_autofree char *parent_hoststr = NULL; bool skip_capable_check = false; VIR_DEBUG("parent='%s', wwnn='%s' wwpn='%s'", @@ -91,27 +91,27 @@ virNodeDeviceCreateVport(virStorageAdapterFCHost *fchost) fchost->parent_wwpn))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("cannot find parent using provided wwnn/wwpn")); - goto cleanup; + return name; } } else if (fchost->parent_fabric_wwn) { if (!(parent_hoststr = virVHBAGetHostByFabricWWN(NULL, fchost->parent_fabric_wwn))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("cannot find parent using provided fabric_wwn")); - goto cleanup; + return name; } } else { if (!(parent_hoststr = virVHBAFindVportHost(NULL))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("'parent' for vHBA not specified, and " "cannot find one on this host")); - goto cleanup; + return name; } skip_capable_check = true; } if (virSCSIHostGetNumber(parent_hoststr, &parent_host) < 0) - goto cleanup; + return name; /* NOTE: * We do not save the parent_hoststr in fchost->parent since @@ -125,23 +125,21 @@ virNodeDeviceCreateVport(virStorageAdapterFCHost *fchost) virReportError(VIR_ERR_XML_ERROR, _("parent '%s' specified for vHBA does not exist"), parent_hoststr); - goto cleanup; + return name; } if (virVHBAManageVport(parent_host, fchost->wwpn, fchost->wwnn, VPORT_CREATE) < 0) - goto cleanup; + return name; /* Let's ensure the device was created */ virWaitForDevices(); if (!(name = virVHBAGetHostByWWN(NULL, fchost->wwnn, fchost->wwpn))) { ignore_value(virVHBAManageVport(parent_host, fchost->wwpn, fchost->wwnn, VPORT_DELETE)); - goto cleanup; + return name; } - cleanup: - VIR_FREE(parent_hoststr); return name; } @@ -160,11 +158,10 @@ int virNodeDeviceDeleteVport(virConnectPtr conn, virStorageAdapterFCHost *fchost) { - char *name = NULL; - char *scsi_host_name = NULL; + g_autofree char *name = NULL; + g_autofree char *scsi_host_name = NULL; unsigned int parent_host; - char *vhba_parent = NULL; - int ret = -1; + g_autofree char *vhba_parent = NULL; VIR_DEBUG("conn=%p parent='%s', managed='%d' wwnn='%s' wwpn='%s'", conn, NULLSTR(fchost->parent), fchost->managed, @@ -179,7 +176,7 @@ virNodeDeviceDeleteVport(virConnectPtr conn, virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to find fc_host for wwnn='%s' and wwpn='%s'"), fchost->wwnn, fchost->wwpn); - goto cleanup; + return -1; } scsi_host_name = g_strdup_printf("scsi_%s", name); @@ -193,36 +190,28 @@ virNodeDeviceDeleteVport(virConnectPtr conn, * was the same as the scsi_host - meaning we have a pool * backed to an HBA, so there won't be a vHBA to delete */ if (STREQ(scsi_host_name, fchost->parent)) { - ret = 0; - goto cleanup; + return 0; } if (virSCSIHostGetNumber(fchost->parent, &parent_host) < 0) - goto cleanup; + return -1; } else { if (!(vhba_parent = virNodeDeviceGetParentName(conn, scsi_host_name))) - goto cleanup; + return -1; /* If the parent is not a scsi_host, then this is a pool backed * directly to an HBA and there's no vHBA to remove - so we're done */ if (!STRPREFIX(vhba_parent, "scsi_host")) { - ret = 0; - goto cleanup; + return 0; } if (virSCSIHostGetNumber(vhba_parent, &parent_host) < 0) - goto cleanup; + return -1; } if (virVHBAManageVport(parent_host, fchost->wwpn, fchost->wwnn, VPORT_DELETE) < 0) - goto cleanup; - - ret = 0; + return -1; - cleanup: - VIR_FREE(name); - VIR_FREE(vhba_parent); - VIR_FREE(scsi_host_name); - return ret; + return 0; } diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 9a95ae6c12..e5ea45b0b7 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2375,10 +2375,10 @@ virNWFilterRuleDefFixup(virNWFilterRuleDef *rule) static virNWFilterRuleDef * virNWFilterRuleParse(xmlNodePtr node) { - char *action; - char *direction; - char *prio; - char *statematch; + g_autofree char *action = NULL; + g_autofree char *direction = NULL; + g_autofree char *prio = NULL; + g_autofree char *statematch = NULL; bool found; int found_i = 0; int priority; @@ -2476,17 +2476,11 @@ virNWFilterRuleParse(xmlNodePtr node) virNWFilterRuleDefFixup(ret); - cleanup: - VIR_FREE(prio); - VIR_FREE(action); - VIR_FREE(direction); - VIR_FREE(statematch); - return ret; err_exit: g_clear_pointer(&ret, virNWFilterRuleDefFree); - goto cleanup; + return ret; } @@ -2521,7 +2515,7 @@ virNWFilterIsAllowedChain(const char *chainname) { virNWFilterChainSuffixType i; const char *name; - char *msg; + g_autofree char *msg = NULL; g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; bool printed = false; @@ -2559,7 +2553,6 @@ virNWFilterIsAllowedChain(const char *chainname) msg = virBufferContentAndReset(&buf); virReportError(VIR_ERR_INVALID_ARG, "%s", msg); - VIR_FREE(msg); return NULL; } @@ -2570,9 +2563,9 @@ virNWFilterDefParseXML(xmlXPathContextPtr ctxt) { virNWFilterDef *ret; xmlNodePtr curr = ctxt->node; - char *uuid = NULL; - char *chain = NULL; - char *chain_pri_s = NULL; + g_autofree char *uuid = NULL; + g_autofree char *chain = NULL; + g_autofree char *chain_pri_s = NULL; virNWFilterEntry *entry; int chain_priority; const char *name_prefix; @@ -2641,7 +2634,6 @@ virNWFilterDefParseXML(xmlXPathContextPtr ctxt) "%s", _("malformed uuid element")); goto cleanup; } - VIR_FREE(uuid); } curr = curr->children; @@ -2671,16 +2663,10 @@ virNWFilterDefParseXML(xmlXPathContextPtr ctxt) curr = curr->next; } - VIR_FREE(chain); - VIR_FREE(chain_pri_s); - return ret; cleanup: virNWFilterDefFree(ret); - VIR_FREE(chain); - VIR_FREE(uuid); - VIR_FREE(chain_pri_s); return NULL; } @@ -2707,24 +2693,21 @@ virNWFilterSaveConfig(const char *configDir, virNWFilterDef *def) { int ret = -1; - char *xml; + g_autofree char *xml = NULL; char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *configFile = NULL; + g_autofree char *configFile = NULL; if (!(xml = virNWFilterDefFormat(def))) - goto cleanup; + return ret; if (!(configFile = virFileBuildPath(configDir, def->name, ".xml"))) - goto cleanup; + return ret; virUUIDFormat(def->uuid, uuidstr); ret = virXMLSaveFile(configFile, virXMLPickShellSafeComment(def->name, uuidstr), "nwfilter-edit", xml); - cleanup: - VIR_FREE(configFile); - VIR_FREE(xml); return ret; } @@ -2733,23 +2716,19 @@ int virNWFilterDeleteDef(const char *configDir, virNWFilterDef *def) { - int ret = -1; - char *configFile = NULL; + g_autofree char *configFile = NULL; if (!(configFile = virFileBuildPath(configDir, def->name, ".xml"))) - goto error; + return -1; if (unlink(configFile) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("cannot remove config for %s"), def->name); - goto error; + return -1; } - ret = 0; - error: - VIR_FREE(configFile); - return ret; + return 0; } diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 635d2ec0b0..c75ecf3a04 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -260,8 +260,7 @@ virNetworkObjMacMgrAdd(virNetworkObj *obj, const virMacAddr *mac) { char macStr[VIR_MAC_STRING_BUFLEN]; - char *file = NULL; - int ret = -1; + g_autofree char *file = NULL; if (!obj->macmap) return 0; @@ -269,18 +268,15 @@ virNetworkObjMacMgrAdd(virNetworkObj *obj, virMacAddrFormat(mac, macStr); if (!(file = virMacMapFileName(dnsmasqStateDir, obj->def->bridge))) - goto cleanup; + return -1; if (virMacMapAdd(obj->macmap, domain, macStr) < 0) - goto cleanup; + return -1; if (virMacMapWriteFile(obj->macmap, file) < 0) - goto cleanup; + return -1; - ret = 0; - cleanup: - VIR_FREE(file); - return ret; + return 0; } @@ -291,8 +287,7 @@ virNetworkObjMacMgrDel(virNetworkObj *obj, const virMacAddr *mac) { char macStr[VIR_MAC_STRING_BUFLEN]; - char *file = NULL; - int ret = -1; + g_autofree char *file = NULL; if (!obj->macmap) return 0; @@ -300,18 +295,15 @@ virNetworkObjMacMgrDel(virNetworkObj *obj, virMacAddrFormat(mac, macStr); if (!(file = virMacMapFileName(dnsmasqStateDir, obj->def->bridge))) - goto cleanup; + return -1; if (virMacMapRemove(obj->macmap, domain, macStr) < 0) - goto cleanup; + return -1; if (virMacMapWriteFile(obj->macmap, file) < 0) - goto cleanup; + return -1; - ret = 0; - cleanup: - VIR_FREE(file); - return ret; + return 0; } @@ -819,20 +811,16 @@ virNetworkObjSaveStatus(const char *statusDir, virNetworkObj *obj, virNetworkXMLOption *xmlopt) { - int ret = -1; int flags = 0; - char *xml; + g_autofree char *xml = NULL; if (!(xml = virNetworkObjFormat(obj, xmlopt, flags))) - goto cleanup; + return -1; if (virNetworkSaveXML(statusDir, obj->def, xml)) - goto cleanup; + return -1; - ret = 0; - cleanup: - VIR_FREE(xml); - return ret; + return 0; } @@ -953,29 +941,30 @@ virNetworkLoadConfig(virNetworkObjList *nets, const char *name, virNetworkXMLOption *xmlopt) { - char *configFile = NULL, *autostartLink = NULL; + g_autofree char *configFile = NULL; + g_autofree char *autostartLink = NULL; g_autoptr(virNetworkDef) def = NULL; virNetworkObj *obj; bool saveConfig = false; int autostart; if ((configFile = virNetworkConfigFile(configDir, name)) == NULL) - goto error; + return NULL; if ((autostartLink = virNetworkConfigFile(autostartDir, name)) == NULL) - goto error; + return NULL; if ((autostart = virFileLinkPointsTo(autostartLink, configFile)) < 0) - goto error; + return NULL; if (!(def = virNetworkDefParse(NULL, configFile, xmlopt, false))) - goto error; + return NULL; if (STRNEQ(name, def->name)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Network config filename '%s'" " does not match network name '%s'"), configFile, def->name); - goto error; + return NULL; } switch ((virNetworkForwardType) def->forward.type) { @@ -1005,7 +994,7 @@ virNetworkLoadConfig(virNetworkObjList *nets, case VIR_NETWORK_FORWARD_LAST: default: virReportEnumRangeError(virNetworkForwardType, def->forward.type); - goto error; + return NULL; } /* The network didn't have a UUID so we generated a new one, and @@ -1016,25 +1005,17 @@ virNetworkLoadConfig(virNetworkObjList *nets, if (saveConfig && virNetworkSaveConfig(configDir, def, xmlopt) < 0) { - goto error; + return NULL; } if (!(obj = virNetworkObjAssignDef(nets, def, 0))) - goto error; + return NULL; def = NULL; obj->autostart = (autostart == 1); - VIR_FREE(configFile); - VIR_FREE(autostartLink); - return obj; - - error: - VIR_FREE(configFile); - VIR_FREE(autostartLink); - return NULL; } @@ -1110,14 +1091,13 @@ virNetworkObjDeleteConfig(const char *configDir, const char *autostartDir, virNetworkObj *obj) { - char *configFile = NULL; - char *autostartLink = NULL; - int ret = -1; + g_autofree char *configFile = NULL; + g_autofree char *autostartLink = NULL; if (!(configFile = virNetworkConfigFile(configDir, obj->def->name))) - goto error; + return -1; if (!(autostartLink = virNetworkConfigFile(autostartDir, obj->def->name))) - goto error; + return -1; /* Not fatal if this doesn't work */ unlink(autostartLink); @@ -1127,15 +1107,10 @@ virNetworkObjDeleteConfig(const char *configDir, virReportSystemError(errno, _("cannot remove config file '%s'"), configFile); - goto error; + return -1; } - ret = 0; - - error: - VIR_FREE(configFile); - VIR_FREE(autostartLink); - return ret; + return 0; } diff --git a/src/conf/virnetworkportdef.c b/src/conf/virnetworkportdef.c index 035e3fe758..37f5376976 100644 --- a/src/conf/virnetworkportdef.c +++ b/src/conf/virnetworkportdef.c @@ -415,22 +415,18 @@ virNetworkPortDefDeleteStatus(virNetworkPortDef *def, const char *dir) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *path; - int ret = -1; + g_autofree char *path = NULL; virUUIDFormat(def->uuid, uuidstr); if (!(path = virNetworkPortDefConfigFile(dir, uuidstr))) - goto cleanup; + return -1; if (unlink(path) < 0 && errno != ENOENT) { virReportSystemError(errno, _("Unable to delete %s"), path); - goto cleanup; + return -1; } - ret = 0; - cleanup: - VIR_FREE(path); - return ret; + return 0; } diff --git a/src/conf/virnwfilterbindingobj.c b/src/conf/virnwfilterbindingobj.c index 6e67c5c7b6..862f825422 100644 --- a/src/conf/virnwfilterbindingobj.c +++ b/src/conf/virnwfilterbindingobj.c @@ -146,8 +146,8 @@ int virNWFilterBindingObjSave(const virNWFilterBindingObj *obj, const char *statusDir) { - char *filename; - char *xml = NULL; + g_autofree char *filename = NULL; + g_autofree char *xml = NULL; int ret = -1; if (!(filename = virNWFilterBindingObjConfigFile(statusDir, @@ -155,22 +155,19 @@ virNWFilterBindingObjSave(const virNWFilterBindingObj *obj, return -1; if (!(xml = virNWFilterBindingObjFormat(obj))) - goto cleanup; + return -1; if (g_mkdir_with_parents(statusDir, 0777) < 0) { virReportSystemError(errno, _("cannot create config directory '%s'"), statusDir); - goto cleanup; + return -1; } ret = virXMLSaveFile(filename, obj->def->portdevname, "nwfilter-binding-create", xml); - cleanup: - VIR_FREE(xml); - VIR_FREE(filename); return ret; } @@ -179,8 +176,7 @@ int virNWFilterBindingObjDelete(const virNWFilterBindingObj *obj, const char *statusDir) { - char *filename; - int ret = -1; + g_autofree char *filename = NULL; if (!(filename = virNWFilterBindingObjConfigFile(statusDir, obj->def->portdevname))) @@ -191,14 +187,10 @@ virNWFilterBindingObjDelete(const virNWFilterBindingObj *obj, virReportSystemError(errno, _("Unable to remove status '%s' for nwfilter binding %s'"), filename, obj->def->portdevname); - goto cleanup; + return -1; } - ret = 0; - - cleanup: - VIR_FREE(filename); - return ret; + return 0; } diff --git a/src/conf/virnwfilterobj.c b/src/conf/virnwfilterobj.c index e8dfe66b3c..2e75e90cf1 100644 --- a/src/conf/virnwfilterobj.c +++ b/src/conf/virnwfilterobj.c @@ -281,21 +281,14 @@ static bool virNWFilterDefEqual(const virNWFilterDef *def1, virNWFilterDef *def2) { - bool ret = false; - char *xml1 = NULL; - char *xml2 = NULL; + g_autofree char *xml1 = NULL; + g_autofree char *xml2 = NULL; if (!(xml1 = virNWFilterDefFormat(def1)) || !(xml2 = virNWFilterDefFormat(def2))) - goto cleanup; - - ret = STREQ(xml1, xml2); + return false; - cleanup: - VIR_FREE(xml1); - VIR_FREE(xml2); - - return ret; + return STREQ(xml1, xml2); } @@ -573,7 +566,7 @@ virNWFilterObjListLoadConfig(virNWFilterObjList *nwfilters, { virNWFilterDef *def = NULL; virNWFilterObj *obj; - char *configFile = NULL; + g_autofree char *configFile = NULL; if (!(configFile = virFileBuildPath(configDir, name, ".xml"))) goto error; @@ -597,11 +590,9 @@ virNWFilterObjListLoadConfig(virNWFilterObjList *nwfilters, if (!(obj = virNWFilterObjListAssignDef(nwfilters, def))) goto error; - VIR_FREE(configFile); return obj; error: - VIR_FREE(configFile); virNWFilterDefFree(def); return NULL; } diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 98d9e0b97e..e6c187e80a 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -1088,9 +1088,8 @@ static int getSCSIHostNumber(virStorageAdapterSCSIHost *scsi_host, unsigned int *hostnum) { - int ret = -1; unsigned int num; - char *name = NULL; + g_autofree char *name = NULL; if (scsi_host->has_parent) { virPCIDeviceAddress *addr = &scsi_host->parentaddr; @@ -1101,20 +1100,17 @@ getSCSIHostNumber(virStorageAdapterSCSIHost *scsi_host, addr->slot, addr->function, unique_id))) - goto cleanup; + return -1; if (virSCSIHostGetNumber(name, &num) < 0) - goto cleanup; + return -1; } else { if (virSCSIHostGetNumber(scsi_host->name, &num) < 0) - goto cleanup; + return -1; } *hostnum = num; - ret = 0; - cleanup: - VIR_FREE(name); - return ret; + return 0; } @@ -1147,9 +1143,9 @@ matchFCHostToSCSIHost(virStorageAdapterFCHost *fchost, { virConnectPtr conn = NULL; bool ret = false; - char *name = NULL; - char *scsi_host_name = NULL; - char *parent_name = NULL; + g_autofree char *name = NULL; + g_autofree char *scsi_host_name = NULL; + g_autofree char *parent_name = NULL; /* If we have a parent defined, get its hostnum, and compare to the * scsi_hostnum. If they are the same, then we have a match @@ -1202,9 +1198,6 @@ matchFCHostToSCSIHost(virStorageAdapterFCHost *fchost, */ cleanup: - VIR_FREE(name); - VIR_FREE(parent_name); - VIR_FREE(scsi_host_name); virConnectClose(conn); return ret; } -- 2.33.0

On a Friday in 2023, Jiang Jiacheng wrote:
Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com> --- src/conf/domain_audit.c | 121 ++++++++++--------------------- src/conf/node_device_util.c | 49 +++++-------- src/conf/nwfilter_conf.c | 55 +++++--------- src/conf/virnetworkobj.c | 85 ++++++++-------------- src/conf/virnetworkportdef.c | 12 +-- src/conf/virnwfilterbindingobj.c | 22 ++---- src/conf/virnwfilterobj.c | 19 ++--- src/conf/virstorageobj.c | 23 ++---- 8 files changed, 129 insertions(+), 257 deletions(-)
[...]
diff --git a/src/conf/node_device_util.c b/src/conf/node_device_util.c index dfec1a91ce..c2fa73afc1 100644 --- a/src/conf/node_device_util.c +++ b/src/conf/node_device_util.c @@ -78,7 +78,7 @@ virNodeDeviceCreateVport(virStorageAdapterFCHost *fchost) { unsigned int parent_host; char *name = NULL; - char *parent_hoststr = NULL; + g_autofree char *parent_hoststr = NULL; bool skip_capable_check = false;
VIR_DEBUG("parent='%s', wwnn='%s' wwpn='%s'", @@ -91,27 +91,27 @@ virNodeDeviceCreateVport(virStorageAdapterFCHost *fchost) fchost->parent_wwpn))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("cannot find parent using provided wwnn/wwpn")); - goto cleanup; + return name; } } else if (fchost->parent_fabric_wwn) { if (!(parent_hoststr = virVHBAGetHostByFabricWWN(NULL, fchost->parent_fabric_wwn))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("cannot find parent using provided fabric_wwn")); - goto cleanup; + return name; } } else { if (!(parent_hoststr = virVHBAFindVportHost(NULL))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("'parent' for vHBA not specified, and " "cannot find one on this host")); - goto cleanup; + return name; } skip_capable_check = true; }
if (virSCSIHostGetNumber(parent_hoststr, &parent_host) < 0) - goto cleanup; + return name;
/* NOTE: * We do not save the parent_hoststr in fchost->parent since @@ -125,23 +125,21 @@ virNodeDeviceCreateVport(virStorageAdapterFCHost *fchost) virReportError(VIR_ERR_XML_ERROR, _("parent '%s' specified for vHBA does not exist"), parent_hoststr); - goto cleanup; + return name; }
if (virVHBAManageVport(parent_host, fchost->wwpn, fchost->wwnn, VPORT_CREATE) < 0) - goto cleanup; + return name;
/* Let's ensure the device was created */ virWaitForDevices(); if (!(name = virVHBAGetHostByWWN(NULL, fchost->wwnn, fchost->wwpn))) { ignore_value(virVHBAManageVport(parent_host, fchost->wwpn, fchost->wwnn, VPORT_DELETE)); - goto cleanup; + return name;
In all the cases above, name can only be NULL, so returning NULL directly is better for clarity.
}
- cleanup: - VIR_FREE(parent_hoststr); return name; }
diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 9a95ae6c12..e5ea45b0b7 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2375,10 +2375,10 @@ virNWFilterRuleDefFixup(virNWFilterRuleDef *rule) static virNWFilterRuleDef * virNWFilterRuleParse(xmlNodePtr node) { - char *action; - char *direction; - char *prio; - char *statematch; + g_autofree char *action = NULL; + g_autofree char *direction = NULL; + g_autofree char *prio = NULL; + g_autofree char *statematch = NULL; bool found; int found_i = 0; int priority; @@ -2476,17 +2476,11 @@ virNWFilterRuleParse(xmlNodePtr node)
virNWFilterRuleDefFixup(ret);
- cleanup: - VIR_FREE(prio); - VIR_FREE(action); - VIR_FREE(direction); - VIR_FREE(statematch); - return ret;
err_exit: g_clear_pointer(&ret, virNWFilterRuleDefFree); - goto cleanup; + return ret;
Clearer as: return NULL;
}
@@ -2707,24 +2693,21 @@ virNWFilterSaveConfig(const char *configDir, virNWFilterDef *def) { int ret = -1; - char *xml; + g_autofree char *xml = NULL; char uuidstr[VIR_UUID_STRING_BUFLEN]; - char *configFile = NULL; + g_autofree char *configFile = NULL;
if (!(xml = virNWFilterDefFormat(def))) - goto cleanup; + return ret;
if (!(configFile = virFileBuildPath(configDir, def->name, ".xml"))) - goto cleanup; + return ret;
In the two returns above: return -1; (As a followup, the ret variable can be removed)
virUUIDFormat(def->uuid, uuidstr); ret = virXMLSaveFile(configFile, virXMLPickShellSafeComment(def->name, uuidstr), "nwfilter-edit", xml);
- cleanup: - VIR_FREE(configFile); - VIR_FREE(xml); return ret; }
I will squash in the following before pushing: diff --git a/src/conf/node_device_util.c b/src/conf/node_device_util.c index c2fa73afc1..3c2fc4e258 100644 --- a/src/conf/node_device_util.c +++ b/src/conf/node_device_util.c @@ -91,27 +91,27 @@ virNodeDeviceCreateVport(virStorageAdapterFCHost *fchost) fchost->parent_wwpn))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("cannot find parent using provided wwnn/wwpn")); - return name; + return NULL; } } else if (fchost->parent_fabric_wwn) { if (!(parent_hoststr = virVHBAGetHostByFabricWWN(NULL, fchost->parent_fabric_wwn))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("cannot find parent using provided fabric_wwn")); - return name; + return NULL; } } else { if (!(parent_hoststr = virVHBAFindVportHost(NULL))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("'parent' for vHBA not specified, and " "cannot find one on this host")); - return name; + return NULL; } skip_capable_check = true; } if (virSCSIHostGetNumber(parent_hoststr, &parent_host) < 0) - return name; + return NULL; /* NOTE: * We do not save the parent_hoststr in fchost->parent since @@ -125,19 +125,19 @@ virNodeDeviceCreateVport(virStorageAdapterFCHost *fchost) virReportError(VIR_ERR_XML_ERROR, _("parent '%s' specified for vHBA does not exist"), parent_hoststr); - return name; + return NULL; } if (virVHBAManageVport(parent_host, fchost->wwpn, fchost->wwnn, VPORT_CREATE) < 0) - return name; + return NULL; /* Let's ensure the device was created */ virWaitForDevices(); if (!(name = virVHBAGetHostByWWN(NULL, fchost->wwnn, fchost->wwpn))) { ignore_value(virVHBAManageVport(parent_host, fchost->wwpn, fchost->wwnn, VPORT_DELETE)); - return name; + return NULL; } return name; diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index e5ea45b0b7..5453b6db05 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2480,7 +2480,7 @@ virNWFilterRuleParse(xmlNodePtr node) err_exit: g_clear_pointer(&ret, virNWFilterRuleDefFree); - return ret; + return NULL; } @@ -2698,10 +2698,10 @@ virNWFilterSaveConfig(const char *configDir, g_autofree char *configFile = NULL; if (!(xml = virNWFilterDefFormat(def))) - return ret; + return -1; if (!(configFile = virFileBuildPath(configDir, def->name, ".xml"))) - return ret; + return -1; virUUIDFormat(def->uuid, uuidstr); ret = virXMLSaveFile(configFile, Jano

Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com> --- src/interface/interface_backend_udev.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c index 979f187d87..54b43fb999 100644 --- a/src/interface/interface_backend_udev.c +++ b/src/interface/interface_backend_udev.c @@ -879,24 +879,23 @@ udevGetIfaceDefVlan(struct udev *udev G_GNUC_UNUSED, const char *name, virInterfaceDef *ifacedef) { - char *procpath = NULL; - char *buf = NULL; + g_autofree char *procpath = NULL; + g_autofree char *buf = NULL; char *vid_pos, *dev_pos; size_t vid_len, dev_len; const char *vid_prefix = "VID: "; const char *dev_prefix = "\nDevice: "; - int ret = -1; procpath = g_strdup_printf("/proc/net/vlan/%s", name); if (virFileReadAll(procpath, BUFSIZ, &buf) < 0) - goto cleanup; + return -1; if ((vid_pos = strstr(buf, vid_prefix)) == NULL) { virReportError(VIR_ERR_INTERNAL_ERROR, _("failed to find the VID for the VLAN device '%s'"), name); - goto cleanup; + return -1; } vid_pos += strlen(vid_prefix); @@ -905,14 +904,14 @@ udevGetIfaceDefVlan(struct udev *udev G_GNUC_UNUSED, virReportError(VIR_ERR_INTERNAL_ERROR, _("failed to find the VID for the VLAN device '%s'"), name); - goto cleanup; + return -1; } if ((dev_pos = strstr(vid_pos + vid_len, dev_prefix)) == NULL) { virReportError(VIR_ERR_INTERNAL_ERROR, _("failed to find the real device for the VLAN device '%s'"), name); - goto cleanup; + return -1; } dev_pos += strlen(dev_prefix); @@ -920,18 +919,13 @@ udevGetIfaceDefVlan(struct udev *udev G_GNUC_UNUSED, virReportError(VIR_ERR_INTERNAL_ERROR, _("failed to find the real device for the VLAN device '%s'"), name); - goto cleanup; + return -1; } ifacedef->data.vlan.tag = g_strndup(vid_pos, vid_len); ifacedef->data.vlan.dev_name = g_strndup(dev_pos, dev_len); - ret = 0; - - cleanup: - VIR_FREE(procpath); - VIR_FREE(buf); - return ret; + return 0; } static virInterfaceDef * ATTRIBUTE_NONNULL(1) -- 2.33.0

Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com> --- src/locking/lock_driver_lockd.c | 36 +++++++++--------------- src/locking/lock_driver_sanlock.c | 46 ++++++++++++------------------- 2 files changed, 31 insertions(+), 51 deletions(-) diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lockd.c index e902b01463..4df12e0105 100644 --- a/src/locking/lock_driver_lockd.c +++ b/src/locking/lock_driver_lockd.c @@ -190,8 +190,8 @@ static virNetClient *virLockManagerLockDaemonConnectionNew(bool privileged, virNetClientProgram **prog) { virNetClient *client = NULL; - char *lockdpath; - char *daemonPath = NULL; + g_autofree char *lockdpath = NULL; + g_autofree char *daemonPath = NULL; *prog = NULL; @@ -220,14 +220,9 @@ static virNetClient *virLockManagerLockDaemonConnectionNew(bool privileged, if (virNetClientAddProgram(client, *prog) < 0) goto error; - VIR_FREE(daemonPath); - VIR_FREE(lockdpath); - return client; error: - VIR_FREE(daemonPath); - VIR_FREE(lockdpath); virNetClientClose(client); virObjectUnref(client); virObjectUnref(*prog); @@ -517,10 +512,9 @@ static int virLockManagerLockDaemonAddResource(virLockManager *lock, unsigned int flags) { virLockManagerLockDaemonPrivate *priv = lock->privateData; - char *newName = NULL; - char *newLockspace = NULL; + g_autofree char *newName = NULL; + g_autofree char *newLockspace = NULL; bool autoCreate = false; - int ret = -1; virCheckFlags(VIR_LOCK_MANAGER_RESOURCE_READONLY | VIR_LOCK_MANAGER_RESOURCE_SHARED, -1); @@ -533,7 +527,7 @@ static int virLockManagerLockDaemonAddResource(virLockManager *lock, if (params || nparams) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unexpected parameters for disk resource")); - goto cleanup; + return -1; } if (!driver->autoDiskLease) { if (!(flags & (VIR_LOCK_MANAGER_RESOURCE_SHARED | @@ -549,7 +543,7 @@ static int virLockManagerLockDaemonAddResource(virLockManager *lock, driver->lvmLockSpaceDir) { VIR_DEBUG("Trying to find an LVM UUID for %s", name); if (virLockManagerGetLVMKey(name, &newName) < 0) - goto cleanup; + return -1; if (newName) { VIR_DEBUG("Got an LVM UUID %s for %s", newName, name); @@ -565,7 +559,7 @@ static int virLockManagerLockDaemonAddResource(virLockManager *lock, driver->scsiLockSpaceDir) { VIR_DEBUG("Trying to find an SCSI ID for %s", name); if (virStorageFileGetSCSIKey(name, &newName, false) < 0) - goto cleanup; + return -1; if (newName) { VIR_DEBUG("Got an SCSI ID %s for %s", newName, name); @@ -580,7 +574,7 @@ static int virLockManagerLockDaemonAddResource(virLockManager *lock, if (driver->fileLockSpaceDir) { newLockspace = g_strdup(driver->fileLockSpaceDir); if (virCryptoHashString(VIR_CRYPTO_HASH_SHA256, name, &newName) < 0) - goto cleanup; + return -1; autoCreate = true; VIR_DEBUG("Using indirect lease %s for %s", newName, name); } else { @@ -599,7 +593,7 @@ static int virLockManagerLockDaemonAddResource(virLockManager *lock, if (params[i].value.ul != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Offset must be zero for this lock manager")); - goto cleanup; + return -1; } } else if (STREQ(params[i].key, "lockspace")) { lockspace = params[i].value.str; @@ -609,13 +603,13 @@ static int virLockManagerLockDaemonAddResource(virLockManager *lock, virReportError(VIR_ERR_INTERNAL_ERROR, _("Unexpected parameter %s for lease resource"), params[i].key); - goto cleanup; + return -1; } } if (!path || !lockspace) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Missing path or lockspace for lease resource")); - goto cleanup; + return -1; } newLockspace = g_strdup_printf("%s/%s", path, lockspace); newName = g_strdup(name); @@ -625,7 +619,7 @@ static int virLockManagerLockDaemonAddResource(virLockManager *lock, virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown lock manager object type %d"), type); - goto cleanup; + return -1; } VIR_EXPAND_N(priv->resources, priv->nresources, 1); @@ -640,11 +634,7 @@ static int virLockManagerLockDaemonAddResource(virLockManager *lock, priv->resources[priv->nresources-1].flags |= VIR_LOCK_SPACE_PROTOCOL_ACQUIRE_RESOURCE_AUTOCREATE; - ret = 0; - cleanup: - VIR_FREE(newLockspace); - VIR_FREE(newName); - return ret; + return 0; } diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c index 2dceb1eefc..438779f926 100644 --- a/src/locking/lock_driver_sanlock.c +++ b/src/locking/lock_driver_sanlock.c @@ -118,9 +118,8 @@ virLockManagerSanlockLoadConfig(virLockManagerSanlockDriver *driver, const char *configFile) { g_autoptr(virConf) conf = NULL; - int ret = -1; - char *user = NULL; - char *group = NULL; + g_autofree char *user = NULL; + g_autofree char *group = NULL; if (access(configFile, R_OK) == -1) { if (errno != ENOENT) { @@ -136,38 +135,34 @@ virLockManagerSanlockLoadConfig(virLockManagerSanlockDriver *driver, return -1; if (virConfGetValueBool(conf, "auto_disk_leases", &driver->autoDiskLease) < 0) - goto cleanup; + return -1; if (virConfGetValueString(conf, "disk_lease_dir", &driver->autoDiskLeasePath) < 0) - goto cleanup; + return -1; if (virConfGetValueUInt(conf, "host_id", &driver->hostID) < 0) - goto cleanup; + return -1; driver->requireLeaseForDisks = !driver->autoDiskLease; if (virConfGetValueBool(conf, "require_lease_for_disks", &driver->requireLeaseForDisks) < 0) - goto cleanup; + return -1; if (virConfGetValueUInt(conf, "io_timeout", &driver->io_timeout) < 0) - goto cleanup; + return -1; if (virConfGetValueString(conf, "user", &user) < 0) - goto cleanup; + return -1; if (user && virGetUserID(user, &driver->user) < 0) - goto cleanup; + return -1; if (virConfGetValueString(conf, "group", &group) < 0) - goto cleanup; + return -1; if (group && virGetGroupID(group, &driver->group) < 0) - goto cleanup; + return -1; - ret = 0; - cleanup: - VIR_FREE(user); - VIR_FREE(group); - return ret; + return 0; } static int @@ -778,8 +773,7 @@ virLockManagerSanlockRegisterKillscript(int sock, { g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; char *path; - char *args = NULL; - int ret = -1; + g_autofree char *args = NULL; int rv; switch (action) { @@ -796,7 +790,7 @@ virLockManagerSanlockRegisterKillscript(int sock, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Failure action %s is not supported by sanlock"), virDomainLockFailureTypeToString(action)); - goto cleanup; + return -1; } virBufferEscape(&buf, '\\', "\\ ", "%s", vmuri); @@ -820,14 +814,14 @@ virLockManagerSanlockRegisterKillscript(int sock, virReportError(VIR_ERR_INTERNAL_ERROR, _("Sanlock helper path is longer than %d: '%s'"), SANLK_HELPER_PATH_LEN - 1, path); - goto cleanup; + return -1; } if (strlen(args) >= SANLK_HELPER_ARGS_LEN) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Sanlock helper arguments are longer than %d:" " '%s'"), SANLK_HELPER_ARGS_LEN - 1, args); - goto cleanup; + return -1; } if ((rv = sanlock_killpath(sock, 0, path, args)) < 0) { @@ -842,14 +836,10 @@ virLockManagerSanlockRegisterKillscript(int sock, _("Failed to register lock failure" " action")); } - goto cleanup; + return -1; } - ret = 0; - - cleanup: - VIR_FREE(args); - return ret; + return 0; } static int virLockManagerSanlockAcquire(virLockManager *lock, -- 2.33.0

Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com> --- src/remote/remote_driver.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index b0dba9057b..316a11b10f 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -3833,23 +3833,19 @@ struct remoteAuthInteractState { static int remoteAuthFillFromConfig(virConnectPtr conn, struct remoteAuthInteractState *state) { - int ret = -1; int ninteract; const char *credname; - char *path = NULL; + g_autofree char *path = NULL; VIR_DEBUG("Trying to fill auth parameters from config file"); if (!state->config) { if (virAuthGetConfigFilePath(conn, &path) < 0) - goto cleanup; - if (path == NULL) { - ret = 0; - goto cleanup; - } - + return -1; + if (path == NULL) + return 0; if (!(state->config = virAuthConfigNew(path))) - goto cleanup; + return -1; } for (ninteract = 0; state->interact[ninteract].id != 0; ninteract++) { @@ -3879,7 +3875,7 @@ static int remoteAuthFillFromConfig(virConnectPtr conn, VIR_URI_SERVER(conn->uri), credname, &value) < 0) - goto cleanup; + return -1; if (value) { state->interact[ninteract].result = value; @@ -3887,11 +3883,7 @@ static int remoteAuthFillFromConfig(virConnectPtr conn, } } - ret = 0; - - cleanup: - VIR_FREE(path); - return ret; + return 0; } -- 2.33.0

Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com> --- src/rpc/virnetclientprogram.c | 6 ++---- src/rpc/virnettlscontext.c | 16 +++++----------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/rpc/virnetclientprogram.c b/src/rpc/virnetclientprogram.c index 5da118bfd3..b93c495347 100644 --- a/src/rpc/virnetclientprogram.c +++ b/src/rpc/virnetclientprogram.c @@ -208,7 +208,7 @@ int virNetClientProgramDispatch(virNetClientProgram *prog, virNetMessage *msg) { virNetClientProgramEvent *event; - char *evdata; + g_autofree char *evdata = NULL; VIR_DEBUG("prog=%d ver=%d type=%d status=%d serial=%d proc=%d", msg->header.prog, msg->header.vers, msg->header.type, @@ -250,14 +250,12 @@ int virNetClientProgramDispatch(virNetClientProgram *prog, evdata = g_new0(char, event->msg_len); if (virNetMessageDecodePayload(msg, event->msg_filter, evdata) < 0) - goto cleanup; + return 0; event->func(prog, client, evdata, prog->eventOpaque); xdr_free(event->msg_filter, evdata); - cleanup: - VIR_FREE(evdata); return 0; } diff --git a/src/rpc/virnettlscontext.c b/src/rpc/virnettlscontext.c index acfc4f9323..cfd26f0701 100644 --- a/src/rpc/virnettlscontext.c +++ b/src/rpc/virnettlscontext.c @@ -474,7 +474,7 @@ static gnutls_x509_crt_t virNetTLSContextLoadCertFromFile(const char *certFile, { gnutls_datum_t data; gnutls_x509_crt_t cert = NULL; - char *buf = NULL; + g_autofree char *buf = NULL; int ret = -1; VIR_DEBUG("isServer %d certFile %s", @@ -506,7 +506,6 @@ static gnutls_x509_crt_t virNetTLSContextLoadCertFromFile(const char *certFile, if (ret != 0) { g_clear_pointer(&cert, gnutls_x509_crt_deinit); } - VIR_FREE(buf); return cert; } @@ -517,14 +516,13 @@ static int virNetTLSContextLoadCACertListFromFile(const char *certFile, size_t *ncerts) { gnutls_datum_t data; - char *buf = NULL; - int ret = -1; + g_autofree char *buf = NULL; *ncerts = 0; VIR_DEBUG("certFile %s", certFile); if (virFileReadAll(certFile, (1<<16), &buf) < 0) - goto cleanup; + return -1; data.data = (unsigned char *)buf; data.size = strlen(buf); @@ -533,15 +531,11 @@ static int virNetTLSContextLoadCACertListFromFile(const char *certFile, virReportError(VIR_ERR_SYSTEM_ERROR, _("Unable to import CA certificate list %s"), certFile); - goto cleanup; + return -1; } *ncerts = certMax; - ret = 0; - - cleanup: - VIR_FREE(buf); - return ret; + return 0; } -- 2.33.0

Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com> --- src/security/security_apparmor.c | 94 +++++++++++--------------------- 1 file changed, 31 insertions(+), 63 deletions(-) diff --git a/src/security/security_apparmor.c b/src/security/security_apparmor.c index 36e8ce42b5..b63b248975 100644 --- a/src/security/security_apparmor.c +++ b/src/security/security_apparmor.c @@ -70,9 +70,9 @@ struct SDPDOP { static int profile_status(const char *str, const int check_enforcing) { - char *content = NULL; - char *tmp = NULL; - char *etmp = NULL; + g_autofree char *content = NULL; + g_autofree char *tmp = NULL; + g_autofree char *etmp = NULL; int rc = -2; /* create string that is '<str> \0' for accurate matching */ @@ -87,7 +87,7 @@ profile_status(const char *str, const int check_enforcing) virReportSystemError(errno, _("Failed to read AppArmor profiles list " "\'%s\'"), APPARMOR_PROFILES_PATH); - goto cleanup; + return -2; } if (strstr(content, tmp) != NULL) @@ -99,11 +99,6 @@ profile_status(const char *str, const int check_enforcing) rc = 1; /* return '1' if loaded and enforcing */ } - VIR_FREE(content); - cleanup: - VIR_FREE(tmp); - VIR_FREE(etmp); - return rc; } @@ -320,12 +315,11 @@ AppArmorSetSecurityHostLabel(virSCSIVHostDevice *dev G_GNUC_UNUSED, static int AppArmorSecurityManagerProbe(const char *virtDriver G_GNUC_UNUSED) { - char *template_qemu = NULL; - char *template_lxc = NULL; - int rc = SECURITY_DRIVER_DISABLE; + g_autofree char *template_qemu = NULL; + g_autofree char *template_lxc = NULL; if (use_apparmor() < 0) - return rc; + return SECURITY_DRIVER_DISABLE; /* see if template file exists */ template_qemu = g_strdup_printf("%s/TEMPLATE.qemu", APPARMOR_DIR "/libvirt"); @@ -334,20 +328,15 @@ AppArmorSecurityManagerProbe(const char *virtDriver G_GNUC_UNUSED) if (!virFileExists(template_qemu)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("template \'%s\' does not exist"), template_qemu); - goto cleanup; + return SECURITY_DRIVER_DISABLE; } if (!virFileExists(template_lxc)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("template \'%s\' does not exist"), template_lxc); - goto cleanup; + return SECURITY_DRIVER_DISABLE; } - rc = SECURITY_DRIVER_ENABLE; - cleanup: - VIR_FREE(template_qemu); - VIR_FREE(template_lxc); - - return rc; + return SECURITY_DRIVER_ENABLE; } /* Security driver initialization. DOI is for 'Domain of Interpretation' and is @@ -387,8 +376,7 @@ static int AppArmorGenSecurityLabel(virSecurityManager *mgr G_GNUC_UNUSED, virDomainDef *def) { - int rc = -1; - char *profile_name = NULL; + g_autofree char *profile_name = NULL; virSecurityLabelDef *secdef = virDomainDefGetSecurityLabelDef(def, SECURITY_APPARMOR_NAME); @@ -402,18 +390,18 @@ AppArmorGenSecurityLabel(virSecurityManager *mgr G_GNUC_UNUSED, if (secdef->baselabel) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Cannot set a base label with AppArmour")); - return rc; + return -1; } if (secdef->label || secdef->imagelabel) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("security label already defined for VM")); - return rc; + return -1; } if ((profile_name = get_profile_name(def)) == NULL) - return rc; + return -1; secdef->label = g_strdup(profile_name); @@ -431,18 +419,13 @@ AppArmorGenSecurityLabel(virSecurityManager *mgr G_GNUC_UNUSED, goto err; } - rc = 0; - goto cleanup; + return 0; err: VIR_FREE(secdef->label); VIR_FREE(secdef->imagelabel); VIR_FREE(secdef->model); - - cleanup: - VIR_FREE(profile_name); - - return rc; + return -1; } static int @@ -474,35 +457,30 @@ AppArmorGetSecurityProcessLabel(virSecurityManager *mgr G_GNUC_UNUSED, pid_t pid G_GNUC_UNUSED, virSecurityLabelPtr sec) { - int rc = -1; int status; - char *profile_name = NULL; + g_autofree char *profile_name = NULL; if ((profile_name = get_profile_name(def)) == NULL) - return rc; + return -1; status = profile_status(profile_name, 1); if (status < -1) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("error getting profile status")); - goto cleanup; + return -1; } else if (status == -1) { sec->label[0] = '\0'; } else { if (virStrcpy(sec->label, profile_name, VIR_SECURITY_LABEL_BUFLEN) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("error copying profile name")); - goto cleanup; + return -1; } } sec->enforcing = status == 1; - rc = 0; - - cleanup: - VIR_FREE(profile_name); - return rc; + return 0; } /* Called on VM shutdown and destroy. See AppArmorGenSecurityLabel (above) for @@ -554,8 +532,7 @@ static int AppArmorSetSecurityProcessLabel(virSecurityManager *mgr G_GNUC_UNUSED, virDomainDef *def) { - int rc = -1; - char *profile_name = NULL; + g_autofree char *profile_name = NULL; virSecurityLabelDef *secdef = virDomainDefGetSecurityLabelDef(def, SECURITY_APPARMOR_NAME); @@ -563,7 +540,7 @@ AppArmorSetSecurityProcessLabel(virSecurityManager *mgr G_GNUC_UNUSED, return 0; if ((profile_name = get_profile_name(def)) == NULL) - return rc; + return -1; if (STRNEQ(SECURITY_APPARMOR_NAME, secdef->model)) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -572,21 +549,17 @@ AppArmorSetSecurityProcessLabel(virSecurityManager *mgr G_GNUC_UNUSED, "hypervisor driver is \'%s\'."), secdef->model, SECURITY_APPARMOR_NAME); if (use_apparmor() > 0) - goto cleanup; + return -1; } VIR_DEBUG("Changing AppArmor profile to %s", profile_name); if (aa_change_profile(profile_name) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("error calling aa_change_profile()")); - goto cleanup; + return -1; } - rc = 0; - - cleanup: - VIR_FREE(profile_name); - return rc; + return 0; } /* Called directly by API user prior to virCommandRun(). @@ -599,9 +572,8 @@ AppArmorSetSecurityChildProcessLabel(virSecurityManager *mgr G_GNUC_UNUSED, virDomainDef *def, virCommand *cmd) { - int rc = -1; - char *profile_name = NULL; - char *cmd_str = NULL; + g_autofree char *profile_name = NULL; + g_autofree char *cmd_str = NULL; virSecurityLabelDef *secdef = virDomainDefGetSecurityLabelDef(def, SECURITY_APPARMOR_NAME); @@ -615,21 +587,17 @@ AppArmorSetSecurityChildProcessLabel(virSecurityManager *mgr G_GNUC_UNUSED, "hypervisor driver is \'%s\'."), secdef->model, SECURITY_APPARMOR_NAME); if (use_apparmor() > 0) - goto cleanup; + return -1; } if ((profile_name = get_profile_name(def)) == NULL) - goto cleanup; + return -1; cmd_str = virCommandToString(cmd, false); VIR_DEBUG("Changing AppArmor profile to %s on %s", profile_name, cmd_str); virCommandSetAppArmorProfile(cmd, profile_name); - rc = 0; - cleanup: - VIR_FREE(profile_name); - VIR_FREE(cmd_str); - return rc; + return 0; } static int -- 2.33.0

Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com> --- src/util/virconf.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/util/virconf.c b/src/util/virconf.c index 8a96805642..c39489973b 100644 --- a/src/util/virconf.c +++ b/src/util/virconf.c @@ -716,7 +716,7 @@ virConfParse(const char *filename, const char *content, int len, virConf * virConfReadFile(const char *filename, unsigned int flags) { - char *content; + g_autofree char *content = NULL; int len; virConf *conf; @@ -732,8 +732,6 @@ virConfReadFile(const char *filename, unsigned int flags) conf = virConfParse(filename, content, len, flags); - VIR_FREE(content); - return conf; } @@ -1413,7 +1411,7 @@ virConfWriteFile(const char *filename, virConf *conf) virConfEntry *cur; int ret; int fd; - char *content; + g_autofree char *content = NULL; unsigned int use; if (conf == NULL) @@ -1434,7 +1432,6 @@ virConfWriteFile(const char *filename, virConf *conf) use = virBufferUse(&buf); content = virBufferContentAndReset(&buf); ret = safewrite(fd, content, use); - VIR_FREE(content); VIR_FORCE_CLOSE(fd); if (ret != (int)use) { virConfError(NULL, VIR_ERR_WRITE_FAILED, _("failed to save content")); @@ -1462,7 +1459,7 @@ virConfWriteMem(char *memory, int *len, virConf *conf) { g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; virConfEntry *cur; - char *content; + g_autofree char *content = NULL; unsigned int use; if ((memory == NULL) || (len == NULL) || (*len <= 0) || (conf == NULL)) @@ -1479,11 +1476,9 @@ virConfWriteMem(char *memory, int *len, virConf *conf) if ((int)use >= *len) { *len = (int)use; - VIR_FREE(content); return -1; } memcpy(memory, content, use); - VIR_FREE(content); *len = use; return use; } @@ -1506,26 +1501,20 @@ virConfLoadConfigPath(const char *name) int virConfLoadConfig(virConf **conf, const char *name) { - char *path = NULL; - int ret = -1; + g_autofree char *path = NULL; *conf = NULL; if (!(path = virConfLoadConfigPath(name))) - goto cleanup; + return -1; if (!virFileExists(path)) { - ret = 0; - goto cleanup; + return 0; } VIR_DEBUG("Loading config file '%s'", path); if (!(*conf = virConfReadFile(path, 0))) - goto cleanup; - - ret = 0; + return -1; - cleanup: - VIR_FREE(path); - return ret; + return 0; } -- 2.33.0

Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com> --- src/vmware/vmware_conf.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/src/vmware/vmware_conf.c b/src/vmware/vmware_conf.c index 80a85f4d0f..5703ce717e 100644 --- a/src/vmware/vmware_conf.c +++ b/src/vmware/vmware_conf.c @@ -338,9 +338,8 @@ int vmwareVmxPath(virDomainDef *vmdef, char **vmxPath) { virDomainDiskDef *disk = NULL; - char *directoryName = NULL; - char *fileName = NULL; - int ret = -1; + g_autofree char *directoryName = NULL; + g_autofree char *fileName = NULL; size_t i; const char *src; @@ -355,7 +354,7 @@ vmwareVmxPath(virDomainDef *vmdef, char **vmxPath) virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Domain XML doesn't contain any disks, " "cannot deduce datastore and path for VMX file")); - goto cleanup; + return -1; } for (i = 0; i < vmdef->ndisks; ++i) { @@ -370,7 +369,7 @@ vmwareVmxPath(virDomainDef *vmdef, char **vmxPath) virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Domain XML doesn't contain any file-based harddisks, " "cannot deduce datastore and path for VMX file")); - goto cleanup; + return -1; } src = virDomainDiskGetSource(disk); @@ -378,27 +377,22 @@ vmwareVmxPath(virDomainDef *vmdef, char **vmxPath) virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("First file-based harddisk has no source, cannot " "deduce datastore and path for VMX file")); - goto cleanup; + return -1; } if (vmwareParsePath(src, &directoryName, &fileName) < 0) - goto cleanup; + return -1; if (!virStringHasCaseSuffix(fileName, ".vmdk")) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Expecting source '%s' of first file-based harddisk " "to be a VMDK image"), src); - goto cleanup; + return -1; } vmwareConstructVmxPath(directoryName, vmdef->name, vmxPath); - ret = 0; - - cleanup: - VIR_FREE(directoryName); - VIR_FREE(fileName); - return ret; + return 0; } int @@ -436,8 +430,8 @@ vmwareMakePath(char *srcDir, char *srcName, char *srcExt, char **outpath) int vmwareExtractPid(const char * vmxPath) { - char *vmxDir = NULL; - char *logFilePath = NULL; + g_autofree char *vmxDir = NULL; + g_autofree char *logFilePath = NULL; FILE *logFile = NULL; char line[1024]; char *tmp = NULL; @@ -473,8 +467,6 @@ vmwareExtractPid(const char * vmxPath) } cleanup: - VIR_FREE(vmxDir); - VIR_FREE(logFilePath); VIR_FORCE_FCLOSE(logFile); return pid_value; } -- 2.33.0

Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com> --- src/vz/vz_utils.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/vz/vz_utils.c b/src/vz/vz_utils.c index fcf6d363a9..219d13823b 100644 --- a/src/vz/vz_utils.c +++ b/src/vz/vz_utils.c @@ -151,7 +151,8 @@ vzInitCaps(unsigned long vzVersion, struct _vzCapabilities *vzCaps) int vzInitVersion(struct _vzDriver *driver) { - char *output, *sVer, *tmp; + g_autofree char *output = NULL; + char *sVer, *tmp; const char *searchStr = "prlsrvctl version "; int ret = -1; @@ -159,12 +160,12 @@ vzInitVersion(struct _vzDriver *driver) if (!output) { vzParseError(); - goto cleanup; + return -1; } if (!(sVer = strstr(output, searchStr))) { vzParseError(); - goto cleanup; + return -1; } sVer = sVer + strlen(searchStr); @@ -173,26 +174,23 @@ vzInitVersion(struct _vzDriver *driver) * In libvirt we handle only first two numbers. */ if (!(tmp = strchr(sVer, '.'))) { vzParseError(); - goto cleanup; + return -1; } if (!(tmp = strchr(tmp + 1, '.'))) { vzParseError(); - goto cleanup; + return -1; } tmp[0] = '\0'; if (virStringParseVersion(&(driver->vzVersion), sVer, true) < 0) { vzParseError(); - goto cleanup; + return -1; } vzInitCaps(driver->vzVersion, &driver->vzCaps); - ret = 0; - cleanup: - VIR_FREE(output); - return ret; + return 0; } static int -- 2.33.0

On a Friday in 2023, Jiang Jiacheng wrote:
Use g_autofree more often and remove unnecessary cleanup/error labels.
diff to v1: * use g_autofree for uuid in 'virNWFilterDefParseXML' * remove unused rc in security_apparmor.c
Jiang Jiacheng (9): conf: use g_autofree and remove unnecessary label interface: use g_autofree and remove unnecessary label locking: use g_autofree and remove unnecessary label remote: use g_autofree and remove unnecessary label rpc: use g_autofree and remove unnecessary label security: use g_autofree and remove unnecessary label util: use g_autofree and remove unnecessary label vmware: use g_autofree and remove unnecessary label vz: use g_autofree and remove unnecessary label
src/conf/domain_audit.c | 121 ++++++++----------------- src/conf/node_device_util.c | 49 ++++------ src/conf/nwfilter_conf.c | 55 ++++------- src/conf/virnetworkobj.c | 85 ++++++----------- src/conf/virnetworkportdef.c | 12 +-- src/conf/virnwfilterbindingobj.c | 22 ++--- src/conf/virnwfilterobj.c | 19 +--- src/conf/virstorageobj.c | 23 ++--- src/interface/interface_backend_udev.c | 22 ++--- src/locking/lock_driver_lockd.c | 36 +++----- src/locking/lock_driver_sanlock.c | 46 ++++------ src/remote/remote_driver.c | 22 ++--- src/rpc/virnetclientprogram.c | 6 +- src/rpc/virnettlscontext.c | 16 +--- src/security/security_apparmor.c | 94 +++++++------------ src/util/virconf.c | 27 ++---- src/vmware/vmware_conf.c | 28 ++---- src/vz/vz_utils.c | 18 ++-- 18 files changed, 239 insertions(+), 462 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> and pushed now. Jano
participants (2)
-
Jiang Jiacheng
-
Ján Tomko