From nobody Mon Feb 9 01:48:06 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 ARC-Seal: i=1; a=rsa-sha256; t=1568636260; cv=none; d=zoho.com; s=zohoarc; b=RWgPqpdcAHDYzrfRwSfSgzUwolzkzlqBiaCCOOraX2XtdjkKtX+SYoTI9OEY2uevpX9GevZkyLKZjiy6R7UcbWm2DxeUmnRr8nFDc+s65ej4yRLi4rMB9M8mRbVS2JlRqecDKp4TyOqYInJGhlVuHZjV4ibw6ouJ1Bs9Xxeqr3M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1568636260; 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=JLciMzXJIPUUUUdcId/bildtU4ID0EoGLYUJIxVP7FQ=; b=f3eJCfeKbbNE3MWxCSEIRnWfJQgAt7cEsdDsU2QxJGG/+MjNE7eY3AYhoSPy2b/2kV1mVcc+kGDTcEGjHaCHfZ+gorTuG8dsbVewwC82A5bdc6JbMGJXF6FIKeicsQcuMYDDSuzt9bJ9wGdhxN35gQ4bEg8vE90DvS/4X/NX5y4= 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 1568636260827101.44932846978668; Mon, 16 Sep 2019 05:17:40 -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 BE73D3175293; Mon, 16 Sep 2019 12:17:38 +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 95A756012C; Mon, 16 Sep 2019 12:17:38 +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 57D408354B; Mon, 16 Sep 2019 12:17:38 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x8GCHOIP024524 for ; Mon, 16 Sep 2019 08:17:24 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9071F196AE; Mon, 16 Sep 2019 12:17:24 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1A5129938 for ; Mon, 16 Sep 2019 12:17:22 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Mon, 16 Sep 2019 14:17:07 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 4/9] conf: Use automatic pointers for xmlXPathContext 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.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Mon, 16 Sep 2019 12:17:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Clean up functions which grab and free the context to use VIR_AUTOPTR. Signed-off-by: Peter Krempa Reviewed-by: Jiri Denemark --- src/conf/checkpoint_conf.c | 12 ++++-------- src/conf/domain_conf.c | 13 ++++--------- src/conf/interface_conf.c | 11 +++-------- src/conf/network_conf.c | 11 +++-------- src/conf/node_device_conf.c | 11 +++-------- src/conf/nwfilter_conf.c | 13 ++++--------- src/conf/snapshot_conf.c | 16 ++++++---------- src/conf/storage_conf.c | 24 ++++++++---------------- 8 files changed, 35 insertions(+), 76 deletions(-) diff --git a/src/conf/checkpoint_conf.c b/src/conf/checkpoint_conf.c index 113d85cc14..5c998267aa 100644 --- a/src/conf/checkpoint_conf.c +++ b/src/conf/checkpoint_conf.c @@ -209,13 +209,12 @@ virDomainCheckpointDefParseNode(xmlDocPtr xml, void *parseOpaque, unsigned int flags) { - xmlXPathContextPtr ctxt =3D NULL; - virDomainCheckpointDefPtr def =3D NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt =3D NULL; VIR_AUTOFREE(char *) schema =3D NULL; if (!virXMLNodeNameEqual(root, "domaincheckpoint")) { virReportError(VIR_ERR_XML_ERROR, "%s", _("domaincheckpoint")); - goto cleanup; + return NULL; } /* This is a new enough API to make schema validation unconditional */ @@ -228,13 +227,10 @@ virDomainCheckpointDefParseNode(xmlDocPtr xml, return NULL; if (!(ctxt =3D virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node =3D root; - def =3D virDomainCheckpointDefParse(ctxt, caps, xmlopt, parseOpaque, f= lags); - cleanup: - xmlXPathFreeContext(ctxt); - return def; + return virDomainCheckpointDefParse(ctxt, caps, xmlopt, parseOpaque, fl= ags); } virDomainCheckpointDefPtr diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 2fe591c328..0ab69a9366 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -21600,26 +21600,21 @@ virDomainObjParseNode(xmlDocPtr xml, virDomainXMLOptionPtr xmlopt, unsigned int flags) { - xmlXPathContextPtr ctxt =3D NULL; - virDomainObjPtr obj =3D NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt =3D NULL; if (!virXMLNodeNameEqual(root, "domstatus")) { virReportError(VIR_ERR_XML_ERROR, _("unexpected root element <%s>, " "expecting "), root->name); - goto cleanup; + return NULL; } if (!(ctxt =3D virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node =3D root; - obj =3D virDomainObjParseXML(xml, ctxt, caps, xmlopt, flags); - - cleanup: - xmlXPathFreeContext(ctxt); - return obj; + return virDomainObjParseXML(xml, ctxt, caps, xmlopt, flags); } diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c index 64729aea43..2b65a235ea 100644 --- a/src/conf/interface_conf.c +++ b/src/conf/interface_conf.c @@ -819,8 +819,7 @@ virInterfaceDefPtr virInterfaceDefParseNode(xmlDocPtr xml, xmlNodePtr root) { - xmlXPathContextPtr ctxt =3D NULL; - virInterfaceDefPtr def =3D NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt =3D NULL; if (!virXMLNodeNameEqual(root, "interface")) { virReportError(VIR_ERR_XML_ERROR, @@ -831,14 +830,10 @@ virInterfaceDefParseNode(xmlDocPtr xml, } if (!(ctxt =3D virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node =3D root; - def =3D virInterfaceDefParseXML(ctxt, VIR_INTERFACE_TYPE_LAST); - - cleanup: - xmlXPathFreeContext(ctxt); - return def; + return virInterfaceDefParseXML(ctxt, VIR_INTERFACE_TYPE_LAST); } diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index b65fb1f67a..9990d5e79d 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -2114,8 +2114,7 @@ virNetworkDefParseNode(xmlDocPtr xml, xmlNodePtr root, virNetworkXMLOptionPtr xmlopt) { - xmlXPathContextPtr ctxt =3D NULL; - virNetworkDefPtr def =3D NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt =3D NULL; if (!virXMLNodeNameEqual(root, "network")) { virReportError(VIR_ERR_XML_ERROR, @@ -2126,14 +2125,10 @@ virNetworkDefParseNode(xmlDocPtr xml, } if (!(ctxt =3D virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node =3D root; - def =3D virNetworkDefParseXML(ctxt, xmlopt); - - cleanup: - xmlXPathFreeContext(ctxt); - return def; + return virNetworkDefParseXML(ctxt, xmlopt); } diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c index 8f8830aef1..84fcbd3e78 100644 --- a/src/conf/node_device_conf.c +++ b/src/conf/node_device_conf.c @@ -2052,8 +2052,7 @@ virNodeDeviceDefParseNode(xmlDocPtr xml, int create, const char *virt_type) { - xmlXPathContextPtr ctxt =3D NULL; - virNodeDeviceDefPtr def =3D NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt =3D NULL; if (!virXMLNodeNameEqual(root, "device")) { virReportError(VIR_ERR_XML_ERROR, @@ -2064,14 +2063,10 @@ virNodeDeviceDefParseNode(xmlDocPtr xml, } if (!(ctxt =3D virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node =3D root; - def =3D virNodeDeviceDefParseXML(ctxt, create, virt_type); - - cleanup: - xmlXPathFreeContext(ctxt); - return def; + return virNodeDeviceDefParseXML(ctxt, create, virt_type); } diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 21885eb7ae..d21eebf19d 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2746,25 +2746,20 @@ virNWFilterDefPtr virNWFilterDefParseNode(xmlDocPtr xml, xmlNodePtr root) { - xmlXPathContextPtr ctxt =3D NULL; - virNWFilterDefPtr def =3D NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt =3D NULL; if (STRNEQ((const char *)root->name, "filter")) { virReportError(VIR_ERR_XML_ERROR, "%s", _("unknown root element for nw filter")); - goto cleanup; + return NULL; } if (!(ctxt =3D virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node =3D root; - def =3D virNWFilterDefParseXML(ctxt); - - cleanup: - xmlXPathFreeContext(ctxt); - return def; + return virNWFilterDefParseXML(ctxt); } diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c index 8cf80aed83..61c807a71f 100644 --- a/src/conf/snapshot_conf.c +++ b/src/conf/snapshot_conf.c @@ -430,12 +430,11 @@ virDomainSnapshotDefParseNode(xmlDocPtr xml, bool *current, unsigned int flags) { - xmlXPathContextPtr ctxt =3D NULL; - virDomainSnapshotDefPtr def =3D NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt =3D NULL; if (!virXMLNodeNameEqual(root, "domainsnapshot")) { virReportError(VIR_ERR_XML_ERROR, "%s", _("domainsnapshot")); - goto cleanup; + return NULL; } if (flags & VIR_DOMAIN_SNAPSHOT_PARSE_VALIDATE) { @@ -445,19 +444,16 @@ virDomainSnapshotDefParseNode(xmlDocPtr xml, abs_top_srcdir "/docs/schemas", PKGDATADIR "/schemas"); if (!schema) - goto cleanup; + return NULL; if (virXMLValidateAgainstSchema(schema, xml) < 0) - goto cleanup; + return NULL; } if (!(ctxt =3D virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node =3D root; - def =3D virDomainSnapshotDefParse(ctxt, caps, xmlopt, parseOpaque, cur= rent, flags); - cleanup: - xmlXPathFreeContext(ctxt); - return def; + return virDomainSnapshotDefParse(ctxt, caps, xmlopt, parseOpaque, curr= ent, flags); } virDomainSnapshotDefPtr diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index 0560994281..f6de3687ab 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1013,25 +1013,21 @@ virStoragePoolDefPtr virStoragePoolDefParseNode(xmlDocPtr xml, xmlNodePtr root) { - xmlXPathContextPtr ctxt =3D NULL; - virStoragePoolDefPtr def =3D NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt =3D NULL; if (!virXMLNodeNameEqual(root, "pool")) { virReportError(VIR_ERR_XML_ERROR, _("unexpected root element <%s>, " "expecting "), root->name); - goto cleanup; + return NULL; } if (!(ctxt =3D virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node =3D root; - def =3D virStoragePoolDefParseXML(ctxt); - cleanup: - xmlXPathFreeContext(ctxt); - return def; + return virStoragePoolDefParseXML(ctxt); } @@ -1454,25 +1450,21 @@ virStorageVolDefParseNode(virStoragePoolDefPtr pool, xmlNodePtr root, unsigned int flags) { - xmlXPathContextPtr ctxt =3D NULL; - virStorageVolDefPtr def =3D NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt =3D NULL; if (!virXMLNodeNameEqual(root, "volume")) { virReportError(VIR_ERR_XML_ERROR, _("unexpected root element <%s>, " "expecting "), root->name); - goto cleanup; + return NULL; } if (!(ctxt =3D virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node =3D root; - def =3D virStorageVolDefParseXML(pool, ctxt, flags); - cleanup: - xmlXPathFreeContext(ctxt); - return def; + return virStorageVolDefParseXML(pool, ctxt, flags); } --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list