From 96980df098d5edaa5178b49d8e9525260fea522b Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 20 Oct 2025 15:19:11 +0200 Subject: [PATCH] virNetDevVlanParse: Refactor cleanup Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/conf/netdev_vlan_conf.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/conf/netdev_vlan_conf.c b/src/conf/netdev_vlan_conf.c index 012a28034e..db142024cd 100644 --- a/src/conf/netdev_vlan_conf.c +++ b/src/conf/netdev_vlan_conf.c @@ -30,9 +30,10 @@ VIR_ENUM_IMPL(virNativeVlanMode, ); int -virNetDevVlanParse(xmlNodePtr node, xmlXPathContextPtr ctxt, virNetDevVlan *def) +virNetDevVlanParse(xmlNodePtr node, + xmlXPathContextPtr ctxt, + virNetDevVlan *def) { - int ret = -1; VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *trunk = NULL; g_autofree xmlNodePtr *tagNodes = NULL; @@ -43,12 +44,12 @@ virNetDevVlanParse(xmlNodePtr node, xmlXPathContextPtr ctxt, virNetDevVlan *def) nTags = virXPathNodeSet("./tag", ctxt, &tagNodes); if (nTags < 0) - goto cleanup; + return -1; if (nTags == 0) { virReportError(VIR_ERR_XML_ERROR, "%s", _("missing tag id - each must have at least one subelement")); - goto cleanup; + return -1; } def->tag = g_new0(unsigned int, nTags); @@ -60,12 +61,12 @@ virNetDevVlanParse(xmlNodePtr node, xmlXPathContextPtr ctxt, virNetDevVlan *def) if (virXMLPropUInt(tagNodes[i], "id", 10, VIR_XML_PROP_REQUIRED, &def->tag[i]) < 0) - goto cleanup; + return -1; if (def->tag[i] > 4095) { virReportError(VIR_ERR_XML_ERROR, _("vlan tag id %1$u too large (maximum 4095)"), def->tag[i]); - goto cleanup; + return -1; } if ((rc = virXMLPropEnum(tagNodes[i], "nativeMode", @@ -77,7 +78,7 @@ virNetDevVlanParse(xmlNodePtr node, xmlXPathContextPtr ctxt, virNetDevVlan *def) if (def->nativeMode != 0) { virReportError(VIR_ERR_XML_ERROR, "%s", _("duplicate native vlan setting")); - goto cleanup; + return -1; } def->nativeMode = nativeMode; @@ -101,26 +102,24 @@ virNetDevVlanParse(xmlNodePtr node, xmlXPathContextPtr ctxt, virNetDevVlan *def) virReportError(VIR_ERR_XML_ERROR, _("invalid \"trunk='%1$s'\" in - trunk='yes' is required for more than one vlan tag"), trunk); - goto cleanup; + return -1; } if (def->nativeMode != 0) { virReportError(VIR_ERR_XML_ERROR, "%s", _("invalid configuration in - \"trunk='no'\" is not allowed with a native vlan id")); - goto cleanup; + return -1; } /* allow (but discard) "trunk='no' if there is a single tag */ if (STRCASENEQ(trunk, "no")) { virReportError(VIR_ERR_XML_ERROR, _("invalid \"trunk='%1$s'\" in - must be yes or no"), trunk); - goto cleanup; + return -1; } } } - ret = 0; - cleanup: - return ret; + return 0; } int -- 2.47.3