From: Peter Krempa Date: Mon, 16 Sep 2019 11:44:39 +0000 (+0200) Subject: conf: secret: Refactor cleanup in secretXMLParseNode X-Git-Tag: v5.8.0-rc1~132 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=47b35f4d0e2ddfb1d2e90083e813235d4c47b73f;p=thirdparty%2Flibvirt.git conf: secret: Refactor cleanup in secretXMLParseNode Use VIR_AUTO* for temporary locals and get rid of the 'cleanup' label. Signed-off-by: Peter Krempa Reviewed-by: Jiri Denemark --- diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index 9990d5e79d..beeb760e2d 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -3654,31 +3654,31 @@ virNetworkDefUpdateSection(virNetworkDefPtr def, break; case VIR_NETWORK_SECTION_IP_DHCP_HOST: return virNetworkDefUpdateIPDHCPHost(def, command, - parentIndex, ctxt, flags); + parentIndex, ctxt, flags); break; case VIR_NETWORK_SECTION_IP_DHCP_RANGE: return virNetworkDefUpdateIPDHCPRange(def, command, - parentIndex, ctxt, flags); + parentIndex, ctxt, flags); break; case VIR_NETWORK_SECTION_FORWARD: return virNetworkDefUpdateForward(def, command, - parentIndex, ctxt, flags); + parentIndex, ctxt, flags); break; case VIR_NETWORK_SECTION_FORWARD_INTERFACE: return virNetworkDefUpdateForwardInterface(def, command, - parentIndex, ctxt, flags); + parentIndex, ctxt, flags); break; case VIR_NETWORK_SECTION_FORWARD_PF: return virNetworkDefUpdateForwardPF(def, command, - parentIndex, ctxt, flags); + parentIndex, ctxt, flags); break; case VIR_NETWORK_SECTION_PORTGROUP: return virNetworkDefUpdatePortGroup(def, command, - parentIndex, ctxt, flags); + parentIndex, ctxt, flags); break; case VIR_NETWORK_SECTION_DNS_HOST: return virNetworkDefUpdateDNSHost(def, command, - parentIndex, ctxt, flags); + parentIndex, ctxt, flags); break; case VIR_NETWORK_SECTION_DNS_TXT: return virNetworkDefUpdateDNSTxt(def, command, parentIndex, ctxt, flags); diff --git a/src/conf/secret_conf.c b/src/conf/secret_conf.c index a7691da7b5..da61c6917e 100644 --- a/src/conf/secret_conf.c +++ b/src/conf/secret_conf.c @@ -131,33 +131,33 @@ virSecretDefParseUsage(xmlXPathContextPtr ctxt, static virSecretDefPtr secretXMLParseNode(xmlDocPtr xml, xmlNodePtr root) { - xmlXPathContextPtr ctxt = NULL; - virSecretDefPtr def = NULL, ret = NULL; - char *prop = NULL; - char *uuidstr = NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt = NULL; + VIR_AUTOPTR(virSecretDef) def = NULL; + VIR_AUTOFREE(char *) prop = NULL; + VIR_AUTOFREE(char *) uuidstr = NULL; if (!virXMLNodeNameEqual(root, "secret")) { virReportError(VIR_ERR_XML_ERROR, _("unexpected root element <%s>, " "expecting "), root->name); - goto cleanup; + return NULL; } if (!(ctxt = virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node = root; if (VIR_ALLOC(def) < 0) - goto cleanup; + return NULL; prop = virXPathString("string(./@ephemeral)", ctxt); if (prop != NULL) { if (virStringParseYesNo(prop, &def->isephemeral) < 0) { virReportError(VIR_ERR_XML_ERROR, "%s", _("invalid value of 'ephemeral'")); - goto cleanup; + return NULL; } VIR_FREE(prop); } @@ -167,7 +167,7 @@ secretXMLParseNode(xmlDocPtr xml, xmlNodePtr root) if (virStringParseYesNo(prop, &def->isprivate) < 0) { virReportError(VIR_ERR_XML_ERROR, "%s", _("invalid value of 'private'")); - goto cleanup; + return NULL; } VIR_FREE(prop); } @@ -177,13 +177,13 @@ secretXMLParseNode(xmlDocPtr xml, xmlNodePtr root) if (virUUIDGenerate(def->uuid) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to generate UUID")); - goto cleanup; + return NULL; } } else { if (virUUIDParse(uuidstr, def->uuid) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("malformed uuid element")); - goto cleanup; + return NULL; } VIR_FREE(uuidstr); } @@ -191,15 +191,9 @@ secretXMLParseNode(xmlDocPtr xml, xmlNodePtr root) def->description = virXPathString("string(./description)", ctxt); if (virXPathNode("./usage", ctxt) != NULL && virSecretDefParseUsage(ctxt, def) < 0) - goto cleanup; - VIR_STEAL_PTR(ret, def); - - cleanup: - VIR_FREE(prop); - VIR_FREE(uuidstr); - virSecretDefFree(def); - xmlXPathFreeContext(ctxt); - return ret; + return NULL; + + VIR_RETURN_PTR(def); } static virSecretDefPtr