virDomainVideoDriverDefParseXML: Fix use of uninitialized variable

Commit fc7e1b2f03 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@redhat.com>
This commit is contained in:
Peter Krempa 2021-05-05 14:08:29 +02:00
parent 4a4c2a4f24
commit 7f71a641d0

View File

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