GCC 4.8.0+ whines about variable "new" being uninitialized since commit 73bfac0e7182a3abd. This is a false positive as the xmlFreeNode(new) statement can be only reached if new was actually allocated successfully. CC conf/libvirt_conf_la-domain_conf.lo conf/domain_conf.c: In function 'virDomainDefSetMetadata': conf/domain_conf.c:18650:24: error: 'new' may be used uninitialized in this function [-Werror=maybe-uninitialized] xmlFreeNode(new); Reported independently by John Ferlan and Michal Privoznik. --- src/conf/domain_conf.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 60f25ab..e5fe900 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -18598,7 +18598,7 @@ virDomainDefSetMetadata(virDomainDefPtr def, { xmlDocPtr doc = NULL; xmlNodePtr old; - xmlNodePtr new; + xmlNodePtr new = NULL; char *tmp; int ret = -1; @@ -18647,11 +18647,8 @@ virDomainDefSetMetadata(virDomainDefPtr def, xmlFreeNode(old); } - /* just delete the metadata */ - if (!metadata) - break; - - if (!(xmlAddChild(def->metadata, new))) { + if (new && + !(xmlAddChild(def->metadata, new))) { xmlFreeNode(new); virReportOOMError(); goto cleanup; -- 1.8.3.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list