[PATCH] virDomainVideoDriverDefParseXML: Fix use of uninitialized variable

Peter Krempa pkrempa at redhat.com
Wed May 5 12:11:15 UTC 2021


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 at 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




More information about the libvir-list mailing list