From nobody Sat May 4 01:28:06 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1635780372; cv=none; d=zohomail.com; s=zohoarc; b=cds9WviHpeo172uG0dqcwFEV/gTGa/Dq8CCeXYR7/REZnzOFMut5sQbnYlK1DNr9NCSHg2aiXxLUh0wjb14jtgswJ+JD3fn3VJFL2Q9R0IyCi3/cKsOOd+Uhays5xH5QFGcqOd4AyhDGZVeqD9jPd2nOLgEZCCs/jU+XvZD0eoM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635780372; h=Content-Type:Content-Transfer-Encoding:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=Nawc8MhI2RDMG9PRKSDuASM7w9H/sZZT2KEG3ZcE/CU=; b=Acjkr6S92uMfjReSOaQRd1dzBYUFgARH2yRCNd/gyBfdDCPtrUa3YC5Do9F1cAO7R0CE79vKn4DywxKyX319ktSnnWAXZYTQhsMvv5ZwQv55B8IqV8iSqIpSq0LBjXBP6KL6sjt9cHdrI6y6160EDvUrG2yjqUUK+enWsBKpBwU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1635780372079740.0667063424156; Mon, 1 Nov 2021 08:26:12 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-285-HGBNVzIaMYOJ_bQdSlzA_Q-1; Mon, 01 Nov 2021 11:26:09 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1D67618125C0; Mon, 1 Nov 2021 15:26:04 +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 3C7024D730; Mon, 1 Nov 2021 15:26:03 +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 2F1554E58F; Mon, 1 Nov 2021 15:26:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1A1FPx4f030162 for ; Mon, 1 Nov 2021 11:25:59 -0400 Received: by smtp.corp.redhat.com (Postfix) id 78C8A4D730; Mon, 1 Nov 2021 15:25:59 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.27]) by smtp.corp.redhat.com (Postfix) with ESMTP id CE7A77621D for ; Mon, 1 Nov 2021 15:25:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1635780370; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=Nawc8MhI2RDMG9PRKSDuASM7w9H/sZZT2KEG3ZcE/CU=; b=V2eQsWzjsLFQKfiS4sd446wcmpyelY7HB3hPYY7cuZGJYtAmV6uzFTJmYdfljxX0Yl5DJs +CZWxfM1CWoDDwvnY48AbxSxUgVMfb/YzOa4KOJrU6qw5Ptd3ICNz5uFFFHeJ4jacrQMmn G1EJkLOgV/7TfhkPEXJPX7PilinT+2g= X-MC-Unique: HGBNVzIaMYOJ_bQdSlzA_Q-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH] lib: Introduce and use g_autoptr() for virInterfaceDef Date: Mon, 1 Nov 2021 16:25:53 +0100 Message-Id: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1635780374292100001 Content-Type: text/plain; charset="utf-8" There are a lot of places where we call virInterfaceDefFree() explicitly. We can define autoptr cleanup macro and annotate declarations with g_autoptr() and remove plenty of those explicit free calls. Signed-off-by: Michal Privoznik Reviewed-by: Tim Wiederhake --- src/conf/interface_conf.c | 32 ++++++++--------- src/conf/interface_conf.h | 1 + src/conf/virinterfaceobj.c | 3 +- src/interface/interface_backend_netcf.c | 47 ++++++++----------------- src/interface/interface_backend_udev.c | 29 +++++---------- src/test/test_driver.c | 17 ++++----- tests/interfacexml2xmltest.c | 17 ++++----- 7 files changed, 53 insertions(+), 93 deletions(-) diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c index b45dc37379..f2b3804bec 100644 --- a/src/conf/interface_conf.c +++ b/src/conf/interface_conf.c @@ -679,7 +679,7 @@ static virInterfaceDef * virInterfaceDefParseXML(xmlXPathContextPtr ctxt, int parentIfType) { - virInterfaceDef *def; + g_autoptr(virInterfaceDef) def =3D NULL; int type; char *tmp; VIR_XPATH_NODE_AUTORESTORE(ctxt) @@ -716,28 +716,28 @@ virInterfaceDefParseXML(xmlXPathContextPtr ctxt, virReportError(VIR_ERR_XML_ERROR, _("interface has unsupported type '%s'"), virInterfaceTypeToString(type)); - goto error; + return NULL; } def->type =3D type; =20 if (virInterfaceDefParseName(def, ctxt) < 0) - goto error; + return NULL; =20 if (parentIfType =3D=3D VIR_INTERFACE_TYPE_LAST) { /* only recognize these in toplevel bond interfaces */ if (virInterfaceDefParseStartMode(def, ctxt) < 0) - goto error; + return NULL; if (virInterfaceDefParseMtu(def, ctxt) < 0) - goto error; + return NULL; if (virInterfaceDefParseIfAdressing(def, ctxt) < 0) - goto error; + return NULL; } =20 if (type !=3D VIR_INTERFACE_TYPE_BRIDGE) { /* link status makes no sense for a bridge */ lnk =3D virXPathNode("./link", ctxt); if (lnk && virInterfaceLinkParseXML(lnk, &def->lnk) < 0) - goto error; + return NULL; } =20 switch (type) { @@ -751,11 +751,11 @@ virInterfaceDefParseXML(xmlXPathContextPtr ctxt, if (!(bridge =3D virXPathNode("./bridge[1]", ctxt))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("bridge interface misses the bridge= element")); - goto error; + return NULL; } ctxt->node =3D bridge; if (virInterfaceDefParseBridge(def, ctxt) < 0) - goto error; + return NULL; break; } case VIR_INTERFACE_TYPE_BOND: { @@ -764,11 +764,11 @@ virInterfaceDefParseXML(xmlXPathContextPtr ctxt, if (!(bond =3D virXPathNode("./bond[1]", ctxt))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("bond interface misses the bond ele= ment")); - goto error; + return NULL; } ctxt->node =3D bond; if (virInterfaceDefParseBond(def, ctxt) < 0) - goto error; + return NULL; break; } case VIR_INTERFACE_TYPE_VLAN: { @@ -777,21 +777,17 @@ virInterfaceDefParseXML(xmlXPathContextPtr ctxt, if (!(vlan =3D virXPathNode("./vlan[1]", ctxt))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("vlan interface misses the vlan ele= ment")); - goto error; + return NULL; } ctxt->node =3D vlan; if (virInterfaceDefParseVlan(def, ctxt) < 0) - goto error; + return NULL; break; } =20 } =20 - return def; - - error: - virInterfaceDefFree(def); - return NULL; + return g_steal_pointer(&def); } =20 =20 diff --git a/src/conf/interface_conf.h b/src/conf/interface_conf.h index ea92e0fb31..510d83b2bf 100644 --- a/src/conf/interface_conf.h +++ b/src/conf/interface_conf.h @@ -153,6 +153,7 @@ struct _virInterfaceDef { =20 void virInterfaceDefFree(virInterfaceDef *def); +G_DEFINE_AUTOPTR_CLEANUP_FUNC(virInterfaceDef, virInterfaceDefFree); =20 virInterfaceDef * virInterfaceDefParseString(const char *xmlStr, diff --git a/src/conf/virinterfaceobj.c b/src/conf/virinterfaceobj.c index 9439bb3d0b..ceb3ae7595 100644 --- a/src/conf/virinterfaceobj.c +++ b/src/conf/virinterfaceobj.c @@ -362,7 +362,7 @@ virInterfaceObjListCloneCb(void *payload, virInterfaceObj *srcObj =3D payload; struct _virInterfaceObjListCloneData *data =3D opaque; char *xml =3D NULL; - virInterfaceDef *backup =3D NULL; + g_autoptr(virInterfaceDef) backup =3D NULL; virInterfaceObj *obj; =20 if (data->error) @@ -387,7 +387,6 @@ virInterfaceObjListCloneCb(void *payload, error: data->error =3D true; VIR_FREE(xml); - virInterfaceDefFree(backup); virObjectUnlock(srcObj); return 0; } diff --git a/src/interface/interface_backend_netcf.c b/src/interface/interf= ace_backend_netcf.c index 78fd4f9bc7..146a703953 100644 --- a/src/interface/interface_backend_netcf.c +++ b/src/interface/interface_backend_netcf.c @@ -387,7 +387,7 @@ static int netcfConnectNumOfInterfacesImpl(virConnectPt= r conn, } =20 for (i =3D 0; i < count; i++) { - virInterfaceDef *def; + g_autoptr(virInterfaceDef) def =3D NULL; struct netcf_if *iface; =20 iface =3D ncf_lookup_by_name(driver->netcf, names[i]); @@ -416,11 +416,8 @@ static int netcfConnectNumOfInterfacesImpl(virConnectP= tr conn, } ncf_if_free(iface); =20 - if (!filter(conn, def)) { - virInterfaceDefFree(def); + if (!filter(conn, def)) continue; - } - virInterfaceDefFree(def); =20 want++; } @@ -481,7 +478,7 @@ static int netcfConnectListInterfacesImpl(virConnectPtr= conn, } =20 for (i =3D 0; i < count && want < nnames; i++) { - virInterfaceDef *def; + g_autoptr(virInterfaceDef) def =3D NULL; struct netcf_if *iface; =20 iface =3D ncf_lookup_by_name(driver->netcf, allnames[i]); @@ -510,11 +507,8 @@ static int netcfConnectListInterfacesImpl(virConnectPt= r conn, } ncf_if_free(iface); =20 - if (!filter(conn, def)) { - virInterfaceDefFree(def); + if (!filter(conn, def)) continue; - } - virInterfaceDefFree(def); =20 names[want++] =3D g_steal_pointer(&allnames[i]); } @@ -665,7 +659,7 @@ netcfConnectListAllInterfaces(virConnectPtr conn, tmp_iface_objs =3D g_new0(virInterfacePtr, count + 1); =20 for (i =3D 0; i < count; i++) { - virInterfaceDef *def; + g_autoptr(virInterfaceDef) def =3D NULL; =20 iface =3D ncf_lookup_by_name(driver->netcf, names[i]); if (!iface) { @@ -693,20 +687,17 @@ netcfConnectListAllInterfaces(virConnectPtr conn, if (!virConnectListAllInterfacesCheckACL(conn, def)) { ncf_if_free(iface); iface =3D NULL; - virInterfaceDefFree(def); continue; } =20 if (ifaces) { - if (!(iface_obj =3D virGetInterface(conn, def->name, def->mac)= )) { - virInterfaceDefFree(def); + if (!(iface_obj =3D virGetInterface(conn, def->name, def->mac)= )) goto cleanup; - } + tmp_iface_objs[niface_objs] =3D iface_obj; } niface_objs++; =20 - virInterfaceDefFree(def); ncf_if_free(iface); iface =3D NULL; } @@ -743,7 +734,7 @@ static virInterfacePtr netcfInterfaceLookupByName(virCo= nnectPtr conn, { struct netcf_if *iface; virInterfacePtr ret =3D NULL; - virInterfaceDef *def =3D NULL; + g_autoptr(virInterfaceDef) def =3D NULL; =20 virObjectLock(driver); iface =3D ncf_lookup_by_name(driver->netcf, name); @@ -772,7 +763,6 @@ static virInterfacePtr netcfInterfaceLookupByName(virCo= nnectPtr conn, =20 cleanup: ncf_if_free(iface); - virInterfaceDefFree(def); virObjectUnlock(driver); return ret; } @@ -783,7 +773,7 @@ static virInterfacePtr netcfInterfaceLookupByMACString(= virConnectPtr conn, struct netcf_if *iface; int niface; virInterfacePtr ret =3D NULL; - virInterfaceDef *def =3D NULL; + g_autoptr(virInterfaceDef) def =3D NULL; =20 virObjectLock(driver); niface =3D ncf_lookup_by_mac_string(driver->netcf, macstr, 1, &iface); @@ -820,7 +810,6 @@ static virInterfacePtr netcfInterfaceLookupByMACString(= virConnectPtr conn, =20 cleanup: ncf_if_free(iface); - virInterfaceDefFree(def); virObjectUnlock(driver); return ret; } @@ -830,7 +819,7 @@ static char *netcfInterfaceGetXMLDesc(virInterfacePtr i= finfo, { struct netcf_if *iface =3D NULL; char *xmlstr =3D NULL; - virInterfaceDef *ifacedef =3D NULL; + g_autoptr(virInterfaceDef) ifacedef =3D NULL; char *ret =3D NULL; bool active; =20 @@ -880,7 +869,6 @@ static char *netcfInterfaceGetXMLDesc(virInterfacePtr i= finfo, cleanup: ncf_if_free(iface); VIR_FREE(xmlstr); - virInterfaceDefFree(ifacedef); virObjectUnlock(driver); return ret; } @@ -891,7 +879,7 @@ static virInterfacePtr netcfInterfaceDefineXML(virConne= ctPtr conn, { struct netcf_if *iface =3D NULL; char *xmlstr =3D NULL; - virInterfaceDef *ifacedef =3D NULL; + g_autoptr(virInterfaceDef) ifacedef =3D NULL; virInterfacePtr ret =3D NULL; =20 virCheckFlags(VIR_INTERFACE_DEFINE_VALIDATE, NULL); @@ -929,7 +917,6 @@ static virInterfacePtr netcfInterfaceDefineXML(virConne= ctPtr conn, cleanup: ncf_if_free(iface); VIR_FREE(xmlstr); - virInterfaceDefFree(ifacedef); virObjectUnlock(driver); return ret; } @@ -937,7 +924,7 @@ static virInterfacePtr netcfInterfaceDefineXML(virConne= ctPtr conn, static int netcfInterfaceUndefine(virInterfacePtr ifinfo) { struct netcf_if *iface =3D NULL; - virInterfaceDef *def =3D NULL; + g_autoptr(virInterfaceDef) def =3D NULL; int ret =3D -1; =20 virObjectLock(driver); @@ -968,7 +955,6 @@ static int netcfInterfaceUndefine(virInterfacePtr ifinf= o) =20 cleanup: ncf_if_free(iface); - virInterfaceDefFree(def); virObjectUnlock(driver); return ret; } @@ -977,7 +963,7 @@ static int netcfInterfaceCreate(virInterfacePtr ifinfo, unsigned int flags) { struct netcf_if *iface =3D NULL; - virInterfaceDef *def =3D NULL; + g_autoptr(virInterfaceDef) def =3D NULL; int ret =3D -1; bool active; =20 @@ -1020,7 +1006,6 @@ static int netcfInterfaceCreate(virInterfacePtr ifinf= o, =20 cleanup: ncf_if_free(iface); - virInterfaceDefFree(def); virObjectUnlock(driver); return ret; } @@ -1029,7 +1014,7 @@ static int netcfInterfaceDestroy(virInterfacePtr ifin= fo, unsigned int flags) { struct netcf_if *iface =3D NULL; - virInterfaceDef *def =3D NULL; + g_autoptr(virInterfaceDef) def =3D NULL; int ret =3D -1; bool active; =20 @@ -1072,7 +1057,6 @@ static int netcfInterfaceDestroy(virInterfacePtr ifin= fo, =20 cleanup: ncf_if_free(iface); - virInterfaceDefFree(def); virObjectUnlock(driver); return ret; } @@ -1080,7 +1064,7 @@ static int netcfInterfaceDestroy(virInterfacePtr ifin= fo, static int netcfInterfaceIsActive(virInterfacePtr ifinfo) { struct netcf_if *iface =3D NULL; - virInterfaceDef *def =3D NULL; + g_autoptr(virInterfaceDef) def =3D NULL; int ret =3D -1; bool active; =20 @@ -1105,7 +1089,6 @@ static int netcfInterfaceIsActive(virInterfacePtr ifi= nfo) =20 cleanup: ncf_if_free(iface); - virInterfaceDefFree(def); virObjectUnlock(driver); return ret; } diff --git a/src/interface/interface_backend_udev.c b/src/interface/interfa= ce_backend_udev.c index 0217f16607..8c417714e5 100644 --- a/src/interface/interface_backend_udev.c +++ b/src/interface/interface_backend_udev.c @@ -165,7 +165,7 @@ udevNumOfInterfacesByStatus(virConnectPtr conn, virUdev= Status status, udev_list_entry_foreach(dev_entry, devices) { struct udev_device *dev; const char *path; - virInterfaceDef *def; + g_autoptr(virInterfaceDef) def =3D NULL; =20 path =3D udev_list_entry_get_name(dev_entry); dev =3D udev_device_new_from_syspath(udev, path); @@ -174,7 +174,6 @@ udevNumOfInterfacesByStatus(virConnectPtr conn, virUdev= Status status, if (filter(conn, def)) count++; udev_device_unref(dev); - virInterfaceDefFree(def); } =20 cleanup: @@ -218,7 +217,7 @@ udevListInterfacesByStatus(virConnectPtr conn, udev_list_entry_foreach(dev_entry, devices) { struct udev_device *dev; const char *path; - virInterfaceDef *def; + g_autoptr(virInterfaceDef) def =3D NULL; =20 /* Ensure we won't exceed the size of our array */ if (count > names_len) @@ -233,7 +232,6 @@ udevListInterfacesByStatus(virConnectPtr conn, count++; } udev_device_unref(dev); - virInterfaceDefFree(def); } =20 udev_enumerate_unref(enumerate); @@ -355,7 +353,7 @@ udevConnectListAllInterfaces(virConnectPtr conn, const char *path; const char *name; const char *macaddr; - virInterfaceDef *def; + g_autoptr(virInterfaceDef) def =3D NULL; =20 path =3D udev_list_entry_get_name(dev_entry); dev =3D udev_device_new_from_syspath(udev, path); @@ -366,10 +364,8 @@ udevConnectListAllInterfaces(virConnectPtr conn, def =3D udevGetMinimalDefForDevice(dev); if (!virConnectListAllInterfacesCheckACL(conn, def)) { udev_device_unref(dev); - virInterfaceDefFree(def); continue; } - virInterfaceDefFree(def); =20 /* Filter the results */ if (MATCH(VIR_CONNECT_LIST_INTERFACES_FILTERS_ACTIVE) && @@ -413,7 +409,7 @@ udevInterfaceLookupByName(virConnectPtr conn, const cha= r *name) struct udev *udev =3D udev_ref(driver->udev); struct udev_device *dev; virInterfacePtr ret =3D NULL; - virInterfaceDef *def =3D NULL; + g_autoptr(virInterfaceDef) def =3D NULL; =20 /* get a device reference based on the device name */ dev =3D udev_device_new_from_subsystem_sysname(udev, "net", name); @@ -435,7 +431,6 @@ udevInterfaceLookupByName(virConnectPtr conn, const cha= r *name) =20 cleanup: udev_unref(udev); - virInterfaceDefFree(def); =20 return ret; } @@ -447,7 +442,7 @@ udevInterfaceLookupByMACString(virConnectPtr conn, cons= t char *macstr) struct udev_enumerate *enumerate =3D NULL; struct udev_list_entry *dev_entry; struct udev_device *dev; - virInterfaceDef *def =3D NULL; + g_autoptr(virInterfaceDef) def =3D NULL; virInterfacePtr ret =3D NULL; =20 enumerate =3D udevGetDevices(udev, VIR_UDEV_IFACE_ALL); @@ -499,7 +494,6 @@ udevInterfaceLookupByMACString(virConnectPtr conn, cons= t char *macstr) if (enumerate) udev_enumerate_unref(enumerate); udev_unref(udev); - virInterfaceDefFree(def); =20 return ret; } @@ -945,7 +939,7 @@ static virInterfaceDef * ATTRIBUTE_NONNULL(1) udevGetIfaceDef(struct udev *udev, const char *name) { struct udev_device *dev =3D NULL; - virInterfaceDef *ifacedef; + g_autoptr(virInterfaceDef) ifacedef =3D NULL; unsigned int mtu; const char *mtu_str; char *vlan_parent_dev =3D NULL; @@ -1038,13 +1032,11 @@ udevGetIfaceDef(struct udev *udev, const char *name) =20 udev_device_unref(dev); =20 - return ifacedef; + return g_steal_pointer(&ifacedef); =20 error: udev_device_unref(dev); =20 - virInterfaceDefFree(ifacedef); - return NULL; } =20 @@ -1053,7 +1045,7 @@ udevInterfaceGetXMLDesc(virInterfacePtr ifinfo, unsigned int flags) { struct udev *udev =3D udev_ref(driver->udev); - virInterfaceDef *ifacedef; + g_autoptr(virInterfaceDef) ifacedef =3D NULL; char *xmlstr =3D NULL; =20 virCheckFlags(VIR_INTERFACE_XML_INACTIVE, NULL); @@ -1071,8 +1063,6 @@ udevInterfaceGetXMLDesc(virInterfacePtr ifinfo, =20 xmlstr =3D virInterfaceDefFormat(ifacedef); =20 - virInterfaceDefFree(ifacedef); - cleanup: /* decrement our udev ptr */ udev_unref(udev); @@ -1085,7 +1075,7 @@ udevInterfaceIsActive(virInterfacePtr ifinfo) { struct udev *udev =3D udev_ref(driver->udev); struct udev_device *dev; - virInterfaceDef *def =3D NULL; + g_autoptr(virInterfaceDef) def =3D NULL; int status =3D -1; =20 dev =3D udev_device_new_from_subsystem_sysname(udev, "net", @@ -1110,7 +1100,6 @@ udevInterfaceIsActive(virInterfacePtr ifinfo) =20 cleanup: udev_unref(udev); - virInterfaceDefFree(def); =20 return status; } diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 13d07e570e..ea474d55ac 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1096,7 +1096,7 @@ testParseNetworks(testDriver *privconn, return -1; =20 for (i =3D 0; i < num; i++) { - virNetworkDef *def; + g_autoptr(virNetworkDef) def =3D NULL; xmlNodePtr node =3D testParseXMLDocFromFile(nodes[i], file, "netwo= rk"); if (!node) return -1; @@ -1105,10 +1105,9 @@ testParseNetworks(testDriver *privconn, if (!def) return -1; =20 - if (!(obj =3D virNetworkObjAssignDef(privconn->networks, def, 0)))= { - virNetworkDefFree(def); + if (!(obj =3D virNetworkObjAssignDef(privconn->networks, def, 0))) return -1; - } + def =3D NULL; =20 virNetworkObjSetActive(obj, true); virNetworkObjEndAPI(&obj); @@ -1133,7 +1132,7 @@ testParseInterfaces(testDriver *privconn, return -1; =20 for (i =3D 0; i < num; i++) { - virInterfaceDef *def; + g_autoptr(virInterfaceDef) def =3D NULL; xmlNodePtr node =3D testParseXMLDocFromFile(nodes[i], file, "interface"); if (!node) @@ -1143,10 +1142,9 @@ testParseInterfaces(testDriver *privconn, if (!def) return -1; =20 - if (!(obj =3D virInterfaceObjListAssignDef(privconn->ifaces, def))= ) { - virInterfaceDefFree(def); + if (!(obj =3D virInterfaceObjListAssignDef(privconn->ifaces, def))) return -1; - } + def =3D NULL; =20 virInterfaceObjSetActive(obj, true); virInterfaceObjEndAPI(&obj); @@ -6195,7 +6193,7 @@ testInterfaceDefineXML(virConnectPtr conn, unsigned int flags) { testDriver *privconn =3D conn->privateData; - virInterfaceDef *def; + g_autoptr(virInterfaceDef) def =3D NULL; virInterfaceObj *obj =3D NULL; virInterfaceDef *objdef; virInterfacePtr ret =3D NULL; @@ -6214,7 +6212,6 @@ testInterfaceDefineXML(virConnectPtr conn, ret =3D virGetInterface(conn, objdef->name, objdef->mac); =20 cleanup: - virInterfaceDefFree(def); virInterfaceObjEndAPI(&obj); virObjectUnlock(privconn); return ret; diff --git a/tests/interfacexml2xmltest.c b/tests/interfacexml2xmltest.c index 8235e701a9..15fab88107 100644 --- a/tests/interfacexml2xmltest.c +++ b/tests/interfacexml2xmltest.c @@ -18,28 +18,23 @@ testCompareXMLToXMLFiles(const char *xml) { g_autofree char *xmlData =3D NULL; g_autofree char *actual =3D NULL; - int ret =3D -1; - virInterfaceDef *dev =3D NULL; + g_autoptr(virInterfaceDef) dev =3D NULL; =20 if (virTestLoadFile(xml, &xmlData) < 0) - goto fail; + return -1; =20 if (!(dev =3D virInterfaceDefParseString(xmlData, 0))) - goto fail; + return -1; =20 if (!(actual =3D virInterfaceDefFormat(dev))) - goto fail; + return -1; =20 if (STRNEQ(xmlData, actual)) { virTestDifferenceFull(stderr, xmlData, xml, actual, NULL); - goto fail; + return -1; } =20 - ret =3D 0; - - fail: - virInterfaceDefFree(dev); - return ret; + return 0; } =20 static int --=20 2.32.0