From 7f71a641d0809924acbe899ddebe46babb3ee4e9 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Wed, 5 May 2021 14:08:29 +0200 Subject: [PATCH] virDomainVideoDriverDefParseXML: Fix use of uninitialized variable Commit fc7e1b2f03cfe2a5f3fce737390548505382d8ed which refactored the video driver parse helper introduced a use of uninitialized variable, which caused test failure at least when compiled with clang. Pass 'def->vgaconf' directly to virXMLPropEnum. 'def' needs to be converted to use g_autofree to handle error scenarios. Signed-off-by: Peter Krempa --- src/conf/domain_conf.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 64f525fc08..d5d8bd0a01 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -14313,8 +14313,7 @@ static virDomainVideoDriverDef * virDomainVideoDriverDefParseXML(xmlNodePtr node, xmlXPathContextPtr ctxt) { - virDomainVideoDriverDef *def; - unsigned int val; + g_autofree virDomainVideoDriverDef *def = NULL; xmlNodePtr driver = NULL; VIR_XPATH_NODE_AUTORESTORE(ctxt) @@ -14323,15 +14322,14 @@ virDomainVideoDriverDefParseXML(xmlNodePtr node, if (!(driver = virXPathNode("./driver", ctxt))) return NULL; + def = g_new0(virDomainVideoDriverDef, 1); + if (virXMLPropEnum(driver, "vgaconf", virDomainVideoVGAConfTypeFromString, - VIR_XML_PROP_NONZERO, &val) < 0) + VIR_XML_PROP_NONZERO, &def->vgaconf) < 0) return NULL; - def = g_new0(virDomainVideoDriverDef, 1); - def->vgaconf = val; - - return def; + return g_steal_pointer(&def); } static virDomainVideoDef *