conf: Avoid false positive of uninitialized variable use

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.
This commit is contained in:
Peter Krempa 2013-09-17 13:27:58 +02:00
parent 716c7bb1dd
commit 0d4f469c87

View File

@ -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;