[libvirt PATCHv1 3/4] conf: metadata: ignore empty metadata element

Ján Tomko posted 4 patches 9 months, 4 weeks ago
[libvirt PATCHv1 3/4] conf: metadata: ignore empty metadata element
Posted by Ján Tomko 9 months, 4 weeks ago
Do not copy the <metadata> node to domain/network definition
if its empty.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
 src/conf/domain_conf.c  | 4 +++-
 src/conf/network_conf.c | 3 ++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 878d1f68c1..6ca604a60b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -19853,8 +19853,10 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt,
         return NULL;
 
     /* Extract custom metadata */
-    if ((node = virXPathNode("./metadata[1]", ctxt)) != NULL)
+    if ((node = virXPathNode("./metadata[1]", ctxt)) != NULL &&
+        xmlFirstElementChild(node)) {
         def->metadata = xmlCopyNode(node, 1);
+    }
 
     /* we have to make a copy of all of the callback pointers here since
      * we won't have the virCaps structure available during free
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index 316a84502d..8cd26de72f 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -1898,7 +1898,8 @@ virNetworkDefParseXML(xmlXPathContextPtr ctxt,
     }
 
     /* Extract custom metadata */
-    if ((metadataNode = virXPathNode("./metadata[1]", ctxt)) != NULL) {
+    if ((metadataNode = virXPathNode("./metadata[1]", ctxt)) != NULL &&
+        xmlFirstElementChild(metadataNode)) {
         def->metadata = xmlCopyNode(metadataNode, 1);
         virXMLNodeSanitizeNamespaces(def->metadata);
     }
-- 
2.48.1