From: Peter Krempa Date: Thu, 15 Sep 2022 16:00:12 +0000 (+0200) Subject: virDomainNetIPInfoParseXML: Simplify cleanup X-Git-Tag: v8.9.0-rc1~175 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb738a75be322a42f63057528f1b32dddfccfca6;p=thirdparty%2Flibvirt.git virDomainNetIPInfoParseXML: Simplify cleanup Do the XPath fetches first as they don't require cleanup and rename 'cleanup' to 'error' and take it only on failure. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 26a24ecd55..ffc55508ef 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6216,42 +6216,38 @@ virDomainNetIPInfoParseXML(const char *source, xmlXPathContextPtr ctxt, virNetDevIPInfo *def) { - int ret = -1; size_t i; g_autofree xmlNodePtr *ipNodes = NULL; int nipNodes; g_autofree xmlNodePtr *routeNodes = NULL; int nrouteNodes; - if ((nipNodes = virXPathNodeSet("./ip", ctxt, &ipNodes)) < 0) - goto cleanup; + if ((nipNodes = virXPathNodeSet("./ip", ctxt, &ipNodes)) < 0 || + (nrouteNodes = virXPathNodeSet("./route", ctxt, &routeNodes)) < 0) + return -1; for (i = 0; i < nipNodes; i++) { virNetDevIPAddr *ip = NULL; if (!(ip = virDomainNetIPParseXML(ipNodes[i]))) - goto cleanup; + goto error; VIR_APPEND_ELEMENT(def->ips, def->nips, ip); } - if ((nrouteNodes = virXPathNodeSet("./route", ctxt, &routeNodes)) < 0) - goto cleanup; - for (i = 0; i < nrouteNodes; i++) { virNetDevIPRoute *route = NULL; if (!(route = virNetDevIPRouteParseXML(source, routeNodes[i], ctxt))) - goto cleanup; + goto error; VIR_APPEND_ELEMENT(def->routes, def->nroutes, route); } - ret = 0; - cleanup: - if (ret < 0) - virNetDevIPInfoClear(def); - return ret; + return 0; + error: + virNetDevIPInfoClear(def); + return -1; }