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 <pkrempa(a)redhat.com>
---
Pushed under the build-breaker fix rule.
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 *
--
2.30.2