mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-01 17:35:17 +00:00
virNetworkDHCPHostDefParseXML: Use virXMLNodeGetSubelement to find 'lease'
This also prevents a potential memleak when multiple elements would be present. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
parent
7bd0e8674c
commit
9598c3c684
@ -501,7 +501,7 @@ virNetworkDHCPHostDefParseXML(const char *networkName,
|
||||
g_autofree char *id = NULL;
|
||||
virMacAddr addr;
|
||||
virSocketAddr inaddr;
|
||||
xmlNodePtr cur = node->children;
|
||||
xmlNodePtr lease;
|
||||
|
||||
mac = virXMLPropString(node, "mac");
|
||||
if (mac != NULL) {
|
||||
@ -593,15 +593,9 @@ virNetworkDHCPHostDefParseXML(const char *networkName,
|
||||
}
|
||||
}
|
||||
|
||||
while (cur != NULL) {
|
||||
if (cur->type == XML_ELEMENT_NODE &&
|
||||
virXMLNodeNameEqual(cur, "lease")) {
|
||||
|
||||
if (virNetworkDHCPLeaseTimeDefParseXML(&host->lease, cur) < 0)
|
||||
return -1;
|
||||
}
|
||||
cur = cur->next;
|
||||
}
|
||||
if ((lease = virXMLNodeGetSubelement(node, "lease")) &&
|
||||
virNetworkDHCPLeaseTimeDefParseXML(&host->lease, lease) < 0)
|
||||
return -1;
|
||||
|
||||
host->mac = g_steal_pointer(&mac);
|
||||
host->id = g_steal_pointer(&id);
|
||||
|
Loading…
x
Reference in New Issue
Block a user