From: Ján Tomko Date: Thu, 20 Feb 2025 21:50:06 +0000 (+0100) Subject: conf: metadata: remove metadata node if all metadata is removed X-Git-Tag: v11.2.0-rc1~301 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a479c3465e4827f6c0b8897612d7862837b935fa;p=thirdparty%2Flibvirt.git conf: metadata: remove metadata node if all metadata is removed 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 Reviewed-by: Michal Privoznik --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index d2d35abb7b..430841ff5f 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -30252,6 +30252,8 @@ virDomainDefSetMetadata(virDomainDef *def, return -1; } new = NULL; + } else if (!xmlFirstElementChild(def->metadata)) { + g_clear_pointer(&def->metadata, xmlFreeNode); } break; diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 75e90c6365..29648d6a9c 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -2114,6 +2114,8 @@ virNetworkDefSetMetadata(virNetworkDef *def, return -1; } new = NULL; + } else if (!xmlFirstElementChild(def->metadata)) { + g_clear_pointer(&def->metadata, xmlFreeNode); } break;