From: Peter Krempa Date: Thu, 1 Dec 2022 10:02:05 +0000 (+0100) Subject: virPCIDeviceAddressParseXML: Use virXMLNodeGetSubelement to find 'zpci' X-Git-Tag: v9.1.0-rc1~105 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=76f73781936d0f3de89599d90c314158ea90a5db;p=thirdparty%2Flibvirt.git virPCIDeviceAddressParseXML: Use virXMLNodeGetSubelement to find 'zpci' Use the helper designed to find the subelement. A slight semantic difference after this patch is that the first element will be considered instead of the last, but only one is expected in a valid XML. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko Reviewed-by: Martin Kletzander --- diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index 762efe5f0b..a116e39c75 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -199,8 +199,7 @@ int virPCIDeviceAddressParseXML(xmlNodePtr node, virPCIDeviceAddress *addr) { - xmlNodePtr cur; - xmlNodePtr zpci = NULL; + xmlNodePtr zpci; memset(addr, 0, sizeof(*addr)); @@ -227,18 +226,11 @@ virPCIDeviceAddressParseXML(xmlNodePtr node, if (!virPCIDeviceAddressIsEmpty(addr) && !virPCIDeviceAddressIsValid(addr, true)) return -1; - cur = node->children; - while (cur) { - if (cur->type == XML_ELEMENT_NODE && - virXMLNodeNameEqual(cur, "zpci")) { - zpci = cur; - } - cur = cur->next; + if ((zpci = virXMLNodeGetSubelement(node, "zpci"))) { + if (virZPCIDeviceAddressParseXML(zpci, addr) < 0) + return -1; } - if (zpci && virZPCIDeviceAddressParseXML(zpci, addr) < 0) - return -1; - return 0; }