]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: metadata: remove metadata node if all metadata is removed
authorJán Tomko <jtomko@redhat.com>
Thu, 20 Feb 2025 21:50:06 +0000 (22:50 +0100)
committerJán Tomko <jtomko@redhat.com>
Mon, 3 Mar 2025 15:17:34 +0000 (16:17 +0100)
When removing the last child element from a network or domain
metadata, free the metadata node itself as well, to prevent
displaying an empty metadata element.

https://issues.redhat.com/browse/RHEL-27172

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/domain_conf.c
src/conf/virnetworkobj.c

index d2d35abb7b0940fa5628ab3f7280d45a4436952e..430841ff5fe52e2472b3e78921ff47cb1894ffdf 100644 (file)
@@ -30252,6 +30252,8 @@ virDomainDefSetMetadata(virDomainDef *def,
                 return -1;
             }
             new = NULL;
+        } else if (!xmlFirstElementChild(def->metadata)) {
+            g_clear_pointer(&def->metadata, xmlFreeNode);
         }
         break;
 
index 75e90c6365ae21b0dc3c2c22ef07ffce83c6739a..29648d6a9c3a67a381f94ebbdbe212d586e4781b 100644 (file)
@@ -2114,6 +2114,8 @@ virNetworkDefSetMetadata(virNetworkDef *def,
                 return -1;
             }
             new = NULL;
+        } else if (!xmlFirstElementChild(def->metadata)) {
+            g_clear_pointer(&def->metadata, xmlFreeNode);
         }
         break;