]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virDomainControllerDefParseXML: Parse 'index' by virXMLPropInt
authorPeter Krempa <pkrempa@redhat.com>
Fri, 26 Aug 2022 11:50:28 +0000 (13:50 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 1 Sep 2022 11:11:10 +0000 (13:11 +0200)
'index' is parsed to fit into a signed int but not have negative values.
virXMLPropInt can do that internally.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_conf.c
tests/qemuxml2argvdata/pci-bridge-negative-index-invalid.err

index 9f7901571a7ecfcb47a1a45d51870c6e908d2807..32305d8cbfe1849f14ccc954983884f59c51faab 100644 (file)
@@ -8132,7 +8132,6 @@ virDomainControllerDefParseXML(virDomainXMLOption *xmlopt,
     int ports;
     VIR_XPATH_NODE_AUTORESTORE(ctxt)
     int rc;
-    g_autofree char *idx = NULL;
     g_autofree char *model = NULL;
 
     ctxt->node = node;
@@ -8152,16 +8151,9 @@ virDomainControllerDefParseXML(virDomainXMLOption *xmlopt,
         }
     }
 
-    idx = virXMLPropString(node, "index");
-    if (idx) {
-        unsigned int idxVal;
-        if (virStrToLong_ui(idx, NULL, 10, &idxVal) < 0 || idxVal > INT_MAX) {
-            virReportError(VIR_ERR_INTERNAL_ERROR,
-                           _("Cannot parse controller index %s"), idx);
-            return NULL;
-        }
-        def->idx = idxVal;
-    }
+    if (virXMLPropInt(node, "index", 10, VIR_XML_PROP_NONNEGATIVE,
+                      &def->idx, def->idx) < 0)
+        return NULL;
 
     if ((driver = virXPathNode("./driver", ctxt))) {
         if (virXMLPropUInt(driver, "queues", 10, VIR_XML_PROP_NONE,
index e258bcbee55f41183ebe03d8575a633e9261797d..24a7d817e18ae8aa16a6dd0f7fe733ee6424db5b 100644 (file)
@@ -1 +1 @@
-internal error: Cannot parse controller index -1
+XML error: Invalid value for attribute 'index' in element 'controller': '-1'. Expected non-negative value