From nobody Mon Feb 9 01:11:48 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1554104008292648.212324858534; Mon, 1 Apr 2019 00:33:28 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D02C830832EB; Mon, 1 Apr 2019 07:33:26 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A6B0A10AFFFC; Mon, 1 Apr 2019 07:33:26 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 65EF01803389; Mon, 1 Apr 2019 07:33:26 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x317XPpM013849 for ; Mon, 1 Apr 2019 03:33:25 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0562260BFC; Mon, 1 Apr 2019 07:33:25 +0000 (UTC) Received: from lpt.redhat.com (ovpn-204-90.brq.redhat.com [10.40.204.90]) by smtp.corp.redhat.com (Postfix) with ESMTP id 60FFC60BE6 for ; Mon, 1 Apr 2019 07:33:24 +0000 (UTC) From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: libvir-list@redhat.com Date: Mon, 1 Apr 2019 09:33:23 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 06/14] virsh-completer: unify cleanup of items in name completers X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Mon, 01 Apr 2019 07:33:27 +0000 (UTC) Merge the cleanup of fetched items for the success and the error paths. Signed-off-by: J=C3=A1n Tomko --- tools/virsh-completer.c | 97 ++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 65 deletions(-) diff --git a/tools/virsh-completer.c b/tools/virsh-completer.c index 46fedc06d9..9d56659259 100644 --- a/tools/virsh-completer.c +++ b/tools/virsh-completer.c @@ -104,20 +104,17 @@ virshDomainNameCompleter(vshControl *ctl, =20 if (VIR_STRDUP(tmp[i], name) < 0) goto error; - - virshDomainFree(domains[i]); } - VIR_FREE(domains); =20 VIR_STEAL_PTR(ret, tmp); =20 cleanup: + for (i =3D 0; i < ndomains; i++) + virshDomainFree(domains[i]); + VIR_FREE(domains); return ret; =20 error: - for (; i < ndomains; i++) - virshDomainFree(domains[i]); - VIR_FREE(domains); for (i =3D 0; i < ndomains; i++) VIR_FREE(tmp[i]); VIR_FREE(tmp); @@ -257,20 +254,17 @@ virshStoragePoolNameCompleter(vshControl *ctl, =20 if (VIR_STRDUP(tmp[i], name) < 0) goto error; - - virStoragePoolFree(pools[i]); } - VIR_FREE(pools); =20 VIR_STEAL_PTR(ret, tmp); =20 cleanup: + for (i =3D 0; i < npools; i++) + virStoragePoolFree(pools[i]); + VIR_FREE(pools); return ret; =20 error: - for (; i < npools; i++) - virStoragePoolFree(pools[i]); - VIR_FREE(pools); for (i =3D 0; i < npools; i++) VIR_FREE(tmp[i]); VIR_FREE(tmp); @@ -312,26 +306,21 @@ virshStorageVolNameCompleter(vshControl *ctl, =20 if (VIR_STRDUP(tmp[i], name) < 0) goto error; - - virStorageVolFree(vols[i]); } =20 - VIR_FREE(vols); - virStoragePoolFree(pool); - VIR_STEAL_PTR(ret, tmp); =20 cleanup: + virStoragePoolFree(pool); + for (i =3D 0; i < nvols; i++) + virStorageVolFree(vols[i]); + VIR_FREE(vols); return ret; =20 error: - for (; i < nvols; i++) - virStorageVolFree(vols[i]); - VIR_FREE(vols); for (i =3D 0; i < nvols; i++) VIR_FREE(tmp[i]); VIR_FREE(tmp); - virStoragePoolFree(pool); goto cleanup; } =20 @@ -366,20 +355,17 @@ virshInterfaceNameCompleter(vshControl *ctl, =20 if (VIR_STRDUP(tmp[i], name) < 0) goto error; - - virInterfaceFree(ifaces[i]); } - VIR_FREE(ifaces); =20 VIR_STEAL_PTR(ret, tmp); =20 cleanup: + for (i =3D 0; i < nifaces; i++) + virInterfaceFree(ifaces[i]); + VIR_FREE(ifaces); return ret; =20 error: - for (; i < nifaces; i++) - virInterfaceFree(ifaces[i]); - VIR_FREE(ifaces); for (i =3D 0; i < nifaces; i++) VIR_FREE(tmp[i]); VIR_FREE(tmp); @@ -418,20 +404,17 @@ virshNetworkNameCompleter(vshControl *ctl, =20 if (VIR_STRDUP(tmp[i], name) < 0) goto error; - - virNetworkFree(nets[i]); } - VIR_FREE(nets); =20 VIR_STEAL_PTR(ret, tmp); =20 cleanup: + for (i =3D 0; i < nnets; i++) + virNetworkFree(nets[i]); + VIR_FREE(nets); return ret; =20 error: - for (; i < nnets; i++) - virNetworkFree(nets[i]); - VIR_FREE(nets); for (i =3D 0; i < nnets; i++) VIR_FREE(tmp[i]); VIR_FREE(tmp); @@ -497,20 +480,17 @@ virshNodeDeviceNameCompleter(vshControl *ctl, =20 if (VIR_STRDUP(tmp[i], name) < 0) goto error; - - virNodeDeviceFree(devs[i]); } - VIR_FREE(devs); =20 VIR_STEAL_PTR(ret, tmp); =20 cleanup: + for (i =3D 0; i < ndevs; i++) + virNodeDeviceFree(devs[i]); + VIR_FREE(devs); return ret; =20 error: - for (; i < ndevs; i++) - virNodeDeviceFree(devs[i]); - VIR_FREE(devs); for (i =3D 0; i < ndevs; i++) VIR_FREE(tmp[i]); VIR_FREE(tmp); @@ -546,20 +526,17 @@ virshNWFilterNameCompleter(vshControl *ctl, =20 if (VIR_STRDUP(tmp[i], name) < 0) goto error; - - virNWFilterFree(nwfilters[i]); } - VIR_FREE(nwfilters); =20 VIR_STEAL_PTR(ret, tmp); =20 cleanup: + for (i =3D 0; i < nnwfilters; i++) + virNWFilterFree(nwfilters[i]); + VIR_FREE(nwfilters); return ret; =20 error: - for (; i < nnwfilters; i++) - virNWFilterFree(nwfilters[i]); - VIR_FREE(nwfilters); for (i =3D 0; i < nnwfilters; i++) VIR_FREE(tmp[i]); VIR_FREE(tmp); @@ -595,20 +572,17 @@ virshNWFilterBindingNameCompleter(vshControl *ctl, =20 if (VIR_STRDUP(tmp[i], name) < 0) goto error; - - virNWFilterBindingFree(bindings[i]); } - VIR_FREE(bindings); =20 VIR_STEAL_PTR(ret, tmp); =20 cleanup: + for (i =3D 0; i < nbindings; i++) + virNWFilterBindingFree(bindings[i]); + VIR_FREE(bindings); return ret; =20 error: - for (; i < nbindings; i++) - virNWFilterBindingFree(bindings[i]); - VIR_FREE(bindings); for (i =3D 0; i < nbindings; i++) VIR_FREE(tmp[i]); VIR_FREE(tmp); @@ -645,20 +619,17 @@ virshSecretUUIDCompleter(vshControl *ctl, if (virSecretGetUUIDString(secrets[i], uuid) < 0 || VIR_STRDUP(tmp[i], uuid) < 0) goto error; - - virSecretFree(secrets[i]); } - VIR_FREE(secrets); =20 VIR_STEAL_PTR(ret, tmp); =20 cleanup: + for (i =3D 0; i < nsecrets; i++) + virSecretFree(secrets[i]); + VIR_FREE(secrets); return ret; =20 error: - for (; i < nsecrets; i++) - virSecretFree(secrets[i]); - VIR_FREE(secrets); for (i =3D 0; i < nsecrets; i++) VIR_FREE(tmp[i]); VIR_FREE(tmp); @@ -700,25 +671,21 @@ virshSnapshotNameCompleter(vshControl *ctl, =20 if (VIR_STRDUP(tmp[i], name) < 0) goto error; - - virshDomainSnapshotFree(snapshots[i]); } - VIR_FREE(snapshots); - virshDomainFree(dom); =20 VIR_STEAL_PTR(ret, tmp); =20 cleanup: + virshDomainFree(dom); + for (i =3D 0; i < nsnapshots; i++) + virshDomainSnapshotFree(snapshots[i]); + VIR_FREE(snapshots); return ret; =20 error: - for (; i < nsnapshots; i++) - virshDomainSnapshotFree(snapshots[i]); - VIR_FREE(snapshots); for (i =3D 0; i < nsnapshots; i++) VIR_FREE(tmp[i]); VIR_FREE(tmp); - virshDomainFree(dom); goto cleanup; } =20 --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list