From nobody Mon May 6 20:26:27 2024 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 ARC-Seal: i=1; a=rsa-sha256; t=1569200933; cv=none; d=zoho.com; s=zohoarc; b=Q0xczFCIi6HFgr+Hx+sY2ohJ7pKSCZ/nXLSFtBfomx8IfUmqd1bLqkuuotH3gfdbdCsVyQVj5wl/fBEmK0JkCvxbPT9tPPM34Km0I1Pgt9CxRzUVLeUGhvEJlzaKyqRYzx7uYSokVEn3PBd7PLSX5OiSAildPOyIgMRW6aHZxdo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569200933; h=Content-Type:Content-Transfer-Encoding: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:ARC-Authentication-Results; bh=2LAGfgyApSvprndTz7W5apopZYB25LXzr26mGgJT1D4=; b=fB6Eu2k0Dp3eVrnYiTIN5IlxrRs+xm6gc0RAoq4i+m5PB1zaR9gbSjZezYPtIllmRoqpN/yjKDOd6O5G+CcfilCOk7PaMXhTp1qrclXXIX+utG3t2Bwnqo2lqsNTkiErYvGmUC8/ivpCdBkWF5abe+aWJkBadWZxYYYtA4056pU= ARC-Authentication-Results: i=1; mx.zoho.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 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 1569200933121549.258713689996; Sun, 22 Sep 2019 18:08:53 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0726D4E919; Mon, 23 Sep 2019 01:08:51 +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 CAAE35D704; Mon, 23 Sep 2019 01:08:46 +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 589284A486; Mon, 23 Sep 2019 01:08:42 +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 x8N18eFs001384 for ; Sun, 22 Sep 2019 21:08:40 -0400 Received: by smtp.corp.redhat.com (Postfix) id 4D80C60167; Mon, 23 Sep 2019 01:08:40 +0000 (UTC) Received: from vhost2.laine.org (ovpn-116-86.phx2.redhat.com [10.3.116.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id D23F860166; Mon, 23 Sep 2019 01:08:37 +0000 (UTC) From: Laine Stump To: libvir-list@redhat.com Date: Sun, 22 Sep 2019 21:08:33 -0400 Message-Id: <20190923010833.18442-1-laine@redhat.com> In-Reply-To: <20190921235957.31265-1-laine@redhat.com> References: <20190921235957.31265-1-laine@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1.5/3] conf: use VIR_AUTOPTR as much as possible for virNetworkPortDefPtr 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-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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 23 Sep 2019 01:08:52 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Since the VIR_DEFINE_AUTOPTR_FUNC() was added for virNetworkPortDefPtr, I decided to convert all uses of virNetworkPortDefPtr that were appropriate to use VIR_AUTOPTR. This could be squashed into patch 1/2, or left separate, or just completely dropped. Signed-off-by: Laine Stump --- src/conf/domain_conf.c | 58 ++++++++++++++----------------- src/conf/virnetworkobj.c | 3 +- src/conf/virnetworkportdef.c | 52 +++++++++++++-------------- tests/virnetworkportxml2xmltest.c | 3 +- 4 files changed, 53 insertions(+), 63 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index d1e7ac84e8..d638c455d0 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -30565,7 +30565,8 @@ virNetworkPortDefPtr virDomainNetDefToNetworkPort(virDomainDefPtr dom, virDomainNetDefPtr iface) { - virNetworkPortDefPtr port; + VIR_AUTOPTR(virNetworkPortDef) port =3D NULL; + virNetworkPortDefPtr portret =3D NULL; =20 if (iface->type !=3D VIR_DOMAIN_NET_TYPE_NETWORK) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -30580,34 +30581,31 @@ virDomainNetDefToNetworkPort(virDomainDefPtr dom, if (virUUIDGenerate(port->uuid) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to generate UUID")); - goto error; + return NULL; } =20 memcpy(port->owneruuid, dom->uuid, VIR_UUID_BUFLEN); if (VIR_STRDUP(port->ownername, dom->name) < 0) - goto error; + return NULL; =20 if (VIR_STRDUP(port->group, iface->data.network.portgroup) < 0) - goto error; + return NULL; =20 memcpy(&port->mac, &iface->mac, VIR_MAC_BUFLEN); =20 if (virNetDevVPortProfileCopy(&port->virtPortProfile, iface->virtPortP= rofile) < 0) - goto error; + return NULL; =20 if (virNetDevBandwidthCopy(&port->bandwidth, iface->bandwidth) < 0) - goto error; + return NULL; =20 if (virNetDevVlanCopy(&port->vlan, &iface->vlan) < 0) - goto error; + return NULL; =20 port->trustGuestRxFilters =3D iface->trustGuestRxFilters; =20 - return port; - - error: - virNetworkPortDefFree(port); - return NULL; + VIR_STEAL_PTR(portret, port); + return portret; } =20 int @@ -30728,7 +30726,8 @@ virDomainNetDefActualToNetworkPort(virDomainDefPtr = dom, virDomainNetDefPtr iface) { virDomainActualNetDefPtr actual; - virNetworkPortDefPtr port; + VIR_AUTOPTR(virNetworkPortDef) port =3D NULL; + virNetworkPortDefPtr portret =3D NULL; =20 if (!iface->data.network.actual) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -30754,15 +30753,15 @@ virDomainNetDefActualToNetworkPort(virDomainDefPt= r dom, } else if (virUUIDGenerate(port->uuid) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to generate UUID")); - goto error; + return NULL; } =20 memcpy(port->owneruuid, dom->uuid, VIR_UUID_BUFLEN); if (VIR_STRDUP(port->ownername, dom->name) < 0) - goto error; + return NULL; =20 if (VIR_STRDUP(port->group, iface->data.network.portgroup) < 0) - goto error; + return NULL; =20 memcpy(&port->mac, &iface->mac, VIR_MAC_BUFLEN); =20 @@ -30771,7 +30770,7 @@ virDomainNetDefActualToNetworkPort(virDomainDefPtr = dom, port->plugtype =3D VIR_NETWORK_PORT_PLUG_TYPE_NETWORK; if (VIR_STRDUP(port->plug.bridge.brname, actual->data.bridge.brname) < 0) - goto error; + return NULL; port->plug.bridge.macTableManager =3D actual->data.bridge.macTable= Manager; break; =20 @@ -30779,7 +30778,7 @@ virDomainNetDefActualToNetworkPort(virDomainDefPtr = dom, port->plugtype =3D VIR_NETWORK_PORT_PLUG_TYPE_BRIDGE; if (VIR_STRDUP(port->plug.bridge.brname, actual->data.bridge.brname) < 0) - goto error; + return NULL; port->plug.bridge.macTableManager =3D actual->data.bridge.macTable= Manager; break; =20 @@ -30787,7 +30786,7 @@ virDomainNetDefActualToNetworkPort(virDomainDefPtr = dom, port->plugtype =3D VIR_NETWORK_PORT_PLUG_TYPE_DIRECT; if (VIR_STRDUP(port->plug.direct.linkdev, actual->data.direct.linkdev) < 0) - goto error; + return NULL; port->plug.direct.mode =3D actual->data.direct.mode; break; =20 @@ -30798,7 +30797,7 @@ virDomainNetDefActualToNetworkPort(virDomainDefPtr = dom, virReportError(VIR_ERR_INTERNAL_ERROR, _("Actual interface '%s' hostdev was not a PCI = device"), iface->ifname); - goto error; + return NULL; } port->plug.hostdevpci.managed =3D virTristateBoolFromBool(actual->= data.hostdev.def.managed); port->plug.hostdevpci.addr =3D actual->data.hostdev.def.source.sub= sys.u.pci.addr; @@ -30824,7 +30823,7 @@ virDomainNetDefActualToNetworkPort(virDomainDefPtr = dom, default: virReportEnumRangeError(virDomainHostdevSubsysPCIBackendType, actual->data.hostdev.def.source.subsys= .u.pci.backend); - goto error; + return NULL; } =20 break; @@ -30840,31 +30839,28 @@ virDomainNetDefActualToNetworkPort(virDomainDefPt= r dom, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unexpected network port type %s"), virDomainNetTypeToString(virDomainNetGetActualType(= iface))); - goto error; + return NULL; =20 case VIR_DOMAIN_NET_TYPE_LAST: default: virReportEnumRangeError(virNetworkPortPlugType, port->plugtype); - goto error; + return NULL; } =20 if (virNetDevVPortProfileCopy(&port->virtPortProfile, actual->virtPort= Profile) < 0) - goto error; + return NULL; =20 if (virNetDevBandwidthCopy(&port->bandwidth, actual->bandwidth) < 0) - goto error; + return NULL; =20 if (virNetDevVlanCopy(&port->vlan, &actual->vlan) < 0) - goto error; + return NULL; =20 port->class_id =3D actual->class_id; port->trustGuestRxFilters =3D actual->trustGuestRxFilters; =20 - return port; - - error: - virNetworkPortDefFree(port); - return NULL; + VIR_STEAL_PTR(portret, port); + return portret; } =20 =20 diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index ca1d598cf9..69a962b466 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -1887,7 +1887,7 @@ virNetworkObjLoadAllPorts(virNetworkObjPtr net, int ret =3D -1; int rc; char uuidstr[VIR_UUID_STRING_BUFLEN]; - virNetworkPortDefPtr portdef =3D NULL; + VIR_AUTOPTR(virNetworkPortDef) portdef =3D NULL; =20 if (!(dir =3D virNetworkObjGetPortStatusDir(net, stateDir))) goto cleanup; @@ -1925,6 +1925,5 @@ virNetworkObjLoadAllPorts(virNetworkObjPtr net, ret =3D 0; cleanup: VIR_DIR_CLOSE(dh); - virNetworkPortDefFree(portdef); return ret; } diff --git a/src/conf/virnetworkportdef.c b/src/conf/virnetworkportdef.c index 2e20bff66e..36e2c2c444 100644 --- a/src/conf/virnetworkportdef.c +++ b/src/conf/virnetworkportdef.c @@ -75,7 +75,8 @@ virNetworkPortDefFree(virNetworkPortDefPtr def) static virNetworkPortDefPtr virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) { - virNetworkPortDefPtr def; + VIR_AUTOPTR(virNetworkPortDef) def =3D NULL; + virNetworkPortDefPtr defret =3D NULL; VIR_AUTOFREE(char *) uuid =3D NULL; xmlNodePtr virtPortNode; xmlNodePtr vlanNode; @@ -96,19 +97,19 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) if (!uuid) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("network port has no uuid")); - goto error; + return NULL; } if (virUUIDParse(uuid, def->uuid) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unable to parse UUID '%s'"), uuid); - goto error; + return NULL; } =20 def->ownername =3D virXPathString("string(./owner/name)", ctxt); if (!def->ownername) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("network port has no owner name")); - goto error; + return NULL; } =20 VIR_FREE(uuid); @@ -116,13 +117,13 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) if (!uuid) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("network port has no owner UUID")); - goto error; + return NULL; } =20 if (virUUIDParse(uuid, def->owneruuid) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unable to parse UUID '%s'"), uuid); - goto error; + return NULL; } =20 def->group =3D virXPathString("string(./group)", ctxt); @@ -130,19 +131,19 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) virtPortNode =3D virXPathNode("./virtualport", ctxt); if (virtPortNode && (!(def->virtPortProfile =3D virNetDevVPortProfileParse(virtPortNod= e, 0)))) { - goto error; + return NULL; } =20 mac =3D virXPathString("string(./mac/@address)", ctxt); if (!mac) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("network port has no mac")); - goto error; + return NULL; } if (virMacAddrParse(mac, &def->mac) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unable to parse MAC '%s'"), mac); - goto error; + return NULL; } =20 bandwidthNode =3D virXPathNode("./bandwidth", ctxt); @@ -155,11 +156,11 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) if (bandwidthNode && virNetDevBandwidthParse(&def->bandwidth, &def->class_id, bandwidthNode, true) < 0) - goto error; + return NULL; =20 vlanNode =3D virXPathNode("./vlan", ctxt); if (vlanNode && virNetDevVlanParse(vlanNode, ctxt, &def->vlan) < 0) - goto error; + return NULL; =20 =20 trustGuestRxFilters @@ -170,7 +171,7 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) virReportError(VIR_ERR_XML_ERROR, _("Invalid guest rx filters trust setting '%s' = "), trustGuestRxFilters); - goto error; + return NULL; } } =20 @@ -191,7 +192,7 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) if (!(def->plug.bridge.brname =3D virXPathString("string(./plug/@b= ridge)", ctxt))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing network port bridge name")); - goto error; + return NULL; } macmgr =3D virXPathString("string(./plug/@macTableManager)", ctxt); if (macmgr && @@ -200,7 +201,7 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) virReportError(VIR_ERR_XML_ERROR, _("Invalid macTableManager setting '%s' " "in network port"), macmgr); - goto error; + return NULL; } break; =20 @@ -208,7 +209,7 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) if (!(def->plug.direct.linkdev =3D virXPathString("string(./plug/@= dev)", ctxt))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing network port link device name")); - goto error; + return NULL; } mode =3D virXPathString("string(./plug/@mode)", ctxt); if (mode && @@ -216,7 +217,7 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) virNetDevMacVLanModeTypeFromString(mode)) < 0) { virReportError(VIR_ERR_XML_ERROR, _("Invalid mode setting '%s' in network port"),= mode); - goto error; + return NULL; } break; =20 @@ -227,7 +228,7 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) virTristateBoolTypeFromString(managed)) < 0) { virReportError(VIR_ERR_XML_ERROR, _("Invalid managed setting '%s' in network port= "), mode); - goto error; + return NULL; } driver =3D virXPathString("string(./plug/driver/@name)", ctxt); if (driver && @@ -235,31 +236,26 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) virNetworkForwardDriverNameTypeFromString(driver)) <=3D 0) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing network port driver name")); - goto error; + return NULL; } if (!(addressNode =3D virXPathNode("./plug/address", ctxt))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing network port PCI address")); - goto error; + return NULL; } =20 if (virPCIDeviceAddressParseXML(addressNode, &def->plug.hostdevpci= .addr) < 0) - goto error; + return NULL; break; =20 case VIR_NETWORK_PORT_PLUG_TYPE_LAST: default: virReportEnumRangeError(virNetworkPortPlugType, def->plugtype); - goto error; + return NULL; } =20 - cleanup: - return def; - - error: - virNetworkPortDefFree(def); - def =3D NULL; - goto cleanup; + VIR_STEAL_PTR(defret, def); + return defret; } =20 =20 diff --git a/tests/virnetworkportxml2xmltest.c b/tests/virnetworkportxml2xm= ltest.c index bb0ae8a8d5..9cbb327d92 100644 --- a/tests/virnetworkportxml2xmltest.c +++ b/tests/virnetworkportxml2xmltest.c @@ -38,7 +38,7 @@ testCompareXMLToXMLFiles(const char *expected) { char *actual =3D NULL; int ret =3D -1; - virNetworkPortDefPtr dev =3D NULL; + VIR_AUTOPTR(virNetworkPortDef) dev =3D NULL; =20 if (!(dev =3D virNetworkPortDefParseFile(expected))) goto cleanup; @@ -52,7 +52,6 @@ testCompareXMLToXMLFiles(const char *expected) ret =3D 0; cleanup: VIR_FREE(actual); - virNetworkPortDefFree(dev); return ret; } =20 --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list