From nobody Sat Feb 7 21:08:16 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; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1571259314; cv=none; d=zoho.com; s=zohoarc; b=e87FiQeKweAX1N1Z/2kImJH4O2vDl8N7XkPEhO1ru1aV6Lt+etlFy2BbOZdSAV3bXsT9Dy4QXv6cG51GAB7Gybbe8SoslldiWv0IHH6jGJ2pi+e9KZ26xkQDjjlKAuwzVFWfYDM0PH6BkxaJdG4xzbofAWZJ/7oD+ZJYKNZLdbM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571259314; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7+zij4kkmVkdmuQIJEZYrKKaUimN7Pv5tVuCfTNWRYs=; b=T7AijeLeEXayPXkeWO7+R0i5nqUwHeFAcE0wlUOJ7lp/7QiXXm+elMyrHLbAyrGs/rF71vjVlKQyUxAJ0pPr0pfXaBP1HlsxrsMQkuWzRzCDouJz12uDwy2N8rsgwEAEmergM2bPGEvzCEfzXh/igWezbz7FXPHa9pZmu0EoWqM= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1571259314168284.30232881944676; Wed, 16 Oct 2019 13:55:14 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4B4A33082B40; Wed, 16 Oct 2019 20:55:12 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 119FE60166; Wed, 16 Oct 2019 20:55:12 +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 A42074EBC0; Wed, 16 Oct 2019 20:55:11 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x9GKsnRu018395 for ; Wed, 16 Oct 2019 16:54:49 -0400 Received: by smtp.corp.redhat.com (Postfix) id A5EC760166; Wed, 16 Oct 2019 20:54:49 +0000 (UTC) Received: from mx1.redhat.com (ext-mx11.extmail.prod.ext.phx2.redhat.com [10.5.110.40]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2FE27600C4; Wed, 16 Oct 2019 20:54:47 +0000 (UTC) Received: from mail-qt1-f196.google.com (mail-qt1-f196.google.com [209.85.160.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 47CA23084288; Wed, 16 Oct 2019 20:54:46 +0000 (UTC) Received: by mail-qt1-f196.google.com with SMTP id o12so169668qtf.3; Wed, 16 Oct 2019 13:54:46 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c7:d25e:a983:2b3:2523:a41]) by smtp.gmail.com with ESMTPSA id m125sm23965qkd.3.2019.10.16.13.54.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Oct 2019 13:54:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ZKSiQK2hvFWP7o3RSnwTYhnq6xIoJmwxU9uo7vjo0FU=; b=SQaXoq4Fkxh/RDw+JM/tcvz/ArBZcSV79yBAb1gepDYtGjRstlL6ZfCUCGyQLryjdZ WZ+rqfYD+xcIinf6FlT9qQ5y0as/WfWz1NDDKy2UHJKWQRtNJGM8AjPVPkBDtFilnJ5U X+RXI8iKjB3m3UL/pVKFZVFwCPV0j/kl/AtmbpfFLrgOCPMIfePuCqsdsL19Kn87CgY0 Z3Bc8D4+nBLX7jOb4ln1Tv8VJm4Ke5hmwKJaOQU0pCK1EjE+93d+hFP3zehwJoznyz6U gC4dQsrP61tXidiiNJNv0KFc186eDK2JDZqeKX2M/A2Q4z+4boZw3WC5guKU90ZvuH9+ cArw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ZKSiQK2hvFWP7o3RSnwTYhnq6xIoJmwxU9uo7vjo0FU=; b=U/vrUuP73Pe66zUZudtjgGREHAFt48FRsAtvNEu4ZQdFJ360PBnBdUncNJNgONGSDL VHRIDtFgEJNrBuq+3CT1TRgAQVlTd2nTcqmj/r2mHiuS/oqU3ST+mksBDkxtMvxfnjA4 tPUypRF+GS9sBzSYVbasVlrCR9qHjX58/S/j8N+x8vpGiSXX6bGKweae4l4lz5hEhucQ FeRDK4iapqffqSm1eqFOk4KXGArlOzXeAsK1NSbvJ2s92KfA9ash6pynDIvXFtmz6iku pk5wbZQbApQwZ+bN60L7zYen089Qvv6qnoY/0/lcIjDt7J2bgGQXxFwnuojlETFTMM0W 5EtQ== X-Gm-Message-State: APjAAAWcKaoNCOPFEEa/y7++V+NQaurn/TwmOBO9UtrBwSha3ZZ3aykY VZDhmEqUeiIzHSwbWxulBh9nz8iJ X-Google-Smtp-Source: APXvYqzCxE9ukK4/AbFjfqx97VKNrqWfeXcHYvXndZ9MjUwC+ZMlDe5rgpnD949GlPfR8dGwvJUm9w== X-Received: by 2002:a05:6214:841:: with SMTP id dg1mr27488qvb.55.1571259285327; Wed, 16 Oct 2019 13:54:45 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Wed, 16 Oct 2019 17:54:29 -0300 Message-Id: <20191016205433.18341-2-danielhb413@gmail.com> In-Reply-To: <20191016205433.18341-1-danielhb413@gmail.com> References: <20191016205433.18341-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Wed, 16 Oct 2019 20:54:46 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Wed, 16 Oct 2019 20:54:46 +0000 (UTC) for IP:'209.85.160.196' DOMAIN:'mail-qt1-f196.google.com' HELO:'mail-qt1-f196.google.com' FROM:'danielhb413@gmail.com' RCPT:'' X-RedHat-Spam-Score: 0.153 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS) 209.85.160.196 mail-qt1-f196.google.com 209.85.160.196 mail-qt1-f196.google.com X-Scanned-By: MIMEDefang 2.84 on 10.5.110.40 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , jtomko@redhat.com, eskultet@redhat.com Subject: [libvirt] [PATCH v4 1/5] qemu_driver: use g_auto* in some functions 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.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Wed, 16 Oct 2019 20:55:12 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) This patch changes qemuDomainSnapshotLoad, qemuDomainCheckpointLoad and qemuStateInitialize to use g_autoptr() and g_autofree, cleaning up some virObjectUnref() and VIR_FREE() calls on each. The reason this is being sent separately is because these are not trivial search/replace cases. In all these functions some strings declarations are moved inside local loops, where they are in fact used, allowing us to erase VIR_FREE() calls that were made inside the loop and in 'cleanup' labels. Following patches with tackle more trivial cases of g_auto* usage in all qemu_driver.c file. Suggested-by: J=C3=A1n Tomko Signed-off-by: Daniel Henrique Barboza --- src/qemu/qemu_driver.c | 51 +++++++++++++----------------------------- 1 file changed, 15 insertions(+), 36 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 86d7647628..3772c71a51 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -386,11 +386,9 @@ qemuDomainSnapshotLoad(virDomainObjPtr vm, void *data) { char *baseDir =3D (char *)data; - char *snapDir =3D NULL; + g_autofree char *snapDir =3D NULL; DIR *dir =3D NULL; struct dirent *entry; - char *xmlStr; - char *fullpath; virDomainSnapshotDefPtr def =3D NULL; virDomainMomentObjPtr snap =3D NULL; virDomainMomentObjPtr current =3D NULL; @@ -399,7 +397,7 @@ qemuDomainSnapshotLoad(virDomainObjPtr vm, VIR_DOMAIN_SNAPSHOT_PARSE_DISKS | VIR_DOMAIN_SNAPSHOT_PARSE_INTERNAL); int ret =3D -1; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; int direrr; qemuDomainObjPrivatePtr priv; =20 @@ -425,6 +423,9 @@ qemuDomainSnapshotLoad(virDomainObjPtr vm, goto cleanup; =20 while ((direrr =3D virDirRead(dir, &entry, NULL)) > 0) { + g_autofree char *xmlStr =3D NULL; + g_autofree char *fullpath =3D NULL; + /* NB: ignoring errors, so one malformed config doesn't kill the whole process */ VIR_INFO("Loading snapshot file '%s'", entry->d_name); @@ -440,7 +441,6 @@ qemuDomainSnapshotLoad(virDomainObjPtr vm, virReportSystemError(errno, _("Failed to read snapshot file %s"), fullpath); - VIR_FREE(fullpath); continue; } =20 @@ -453,8 +453,6 @@ qemuDomainSnapshotLoad(virDomainObjPtr vm, virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to parse snapshot XML from file '%s'"= ), fullpath); - VIR_FREE(fullpath); - VIR_FREE(xmlStr); continue; } =20 @@ -468,9 +466,6 @@ qemuDomainSnapshotLoad(virDomainObjPtr vm, vm->def->name); current =3D snap; } - - VIR_FREE(fullpath); - VIR_FREE(xmlStr); } if (direrr < 0) virReportError(VIR_ERR_INTERNAL_ERROR, @@ -497,8 +492,6 @@ qemuDomainSnapshotLoad(virDomainObjPtr vm, ret =3D 0; cleanup: VIR_DIR_CLOSE(dir); - VIR_FREE(snapDir); - virObjectUnref(caps); virObjectUnlock(vm); return ret; } @@ -509,17 +502,15 @@ qemuDomainCheckpointLoad(virDomainObjPtr vm, void *data) { char *baseDir =3D (char *)data; - char *chkDir =3D NULL; + g_autofree char *chkDir =3D NULL; DIR *dir =3D NULL; struct dirent *entry; - char *xmlStr; - char *fullpath; virDomainCheckpointDefPtr def =3D NULL; virDomainMomentObjPtr chk =3D NULL; virDomainMomentObjPtr current =3D NULL; unsigned int flags =3D VIR_DOMAIN_CHECKPOINT_PARSE_REDEFINE; int ret =3D -1; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; int direrr; qemuDomainObjPrivatePtr priv; =20 @@ -544,6 +535,9 @@ qemuDomainCheckpointLoad(virDomainObjPtr vm, goto cleanup; =20 while ((direrr =3D virDirRead(dir, &entry, NULL)) > 0) { + g_autofree char *xmlStr =3D NULL; + g_autofree char *fullpath =3D NULL; + /* NB: ignoring errors, so one malformed config doesn't kill the whole process */ VIR_INFO("Loading checkpoint file '%s'", entry->d_name); @@ -559,7 +553,6 @@ qemuDomainCheckpointLoad(virDomainObjPtr vm, virReportSystemError(errno, _("Failed to read checkpoint file %s"), fullpath); - VIR_FREE(fullpath); continue; } =20 @@ -572,8 +565,6 @@ qemuDomainCheckpointLoad(virDomainObjPtr vm, virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to parse checkpoint XML from file '%s= '"), fullpath); - VIR_FREE(fullpath); - VIR_FREE(xmlStr); virObjectUnref(def); continue; } @@ -581,9 +572,6 @@ qemuDomainCheckpointLoad(virDomainObjPtr vm, chk =3D virDomainCheckpointAssignDef(vm->checkpoints, def); if (chk =3D=3D NULL) virObjectUnref(def); - - VIR_FREE(fullpath); - VIR_FREE(xmlStr); } if (direrr < 0) virReportError(VIR_ERR_INTERNAL_ERROR, @@ -608,8 +596,6 @@ qemuDomainCheckpointLoad(virDomainObjPtr vm, ret =3D 0; cleanup: VIR_DIR_CLOSE(dir); - VIR_FREE(chkDir); - virObjectUnref(caps); virObjectUnlock(vm); return ret; } @@ -667,12 +653,11 @@ qemuStateInitialize(bool privileged, virStateInhibitCallback callback, void *opaque) { - char *driverConf =3D NULL; + g_autofree char *driverConf =3D NULL; virQEMUDriverConfigPtr cfg; uid_t run_uid =3D -1; gid_t run_gid =3D -1; - char *hugepagePath =3D NULL; - char *memoryBackingPath =3D NULL; + g_autofree char *memoryBackingPath =3D NULL; bool autostart =3D true; size_t i; =20 @@ -713,7 +698,6 @@ qemuStateInitialize(bool privileged, =20 if (virQEMUDriverConfigLoadFile(cfg, driverConf, privileged) < 0) goto error; - VIR_FREE(driverConf); =20 if (virQEMUDriverConfigValidate(cfg) < 0) goto error; @@ -837,7 +821,7 @@ qemuStateInitialize(bool privileged, goto error; =20 if (privileged) { - char *channeldir; + g_autofree char *channeldir =3D NULL; =20 if (chown(cfg->libDir, cfg->user, cfg->group) < 0) { virReportSystemError(errno, @@ -890,10 +874,8 @@ qemuStateInitialize(bool privileged, _("unable to set ownership of '%s' to %d:= %d"), channeldir, (int)cfg->user, (int)cfg->group); - VIR_FREE(channeldir); goto error; } - VIR_FREE(channeldir); if (chown(cfg->channelTargetDir, cfg->user, cfg->group) < 0) { virReportSystemError(errno, _("unable to set ownership of '%s' to %d:= %d"), @@ -944,6 +926,8 @@ qemuStateInitialize(bool privileged, * it, since we can't assume the root mount point has permissions that * will let our spawned QEMU instances use it. */ for (i =3D 0; i < cfg->nhugetlbfs; i++) { + g_autofree char *hugepagePath =3D NULL; + hugepagePath =3D qemuGetBaseHugepagePath(&cfg->hugetlbfs[i]); =20 if (!hugepagePath) @@ -959,7 +943,6 @@ qemuStateInitialize(bool privileged, virFileUpdatePerm(cfg->hugetlbfs[i].mnt_dir, 0, S_IXGRP | S_IXOTH) < 0) goto error; - VIR_FREE(hugepagePath); } =20 if (qemuGetMemoryBackingBasePath(cfg, &memoryBackingPath) < 0) @@ -976,7 +959,6 @@ qemuStateInitialize(bool privileged, virFileUpdatePerm(memoryBackingPath, 0, S_IXGRP | S_IXOTH) < 0) goto error; - VIR_FREE(memoryBackingPath); =20 if (!(qemu_driver->closeCallbacks =3D virCloseCallbacksNew())) goto error; @@ -1045,9 +1027,6 @@ qemuStateInitialize(bool privileged, return VIR_DRV_STATE_INIT_COMPLETE; =20 error: - VIR_FREE(driverConf); - VIR_FREE(hugepagePath); - VIR_FREE(memoryBackingPath); qemuStateCleanup(); return VIR_DRV_STATE_INIT_ERROR; } --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list