virNodeDeviceDefParse: Don't call post-parse callbacks with NULL def

When parsing of the node device XML fails we'd still call the post-parse
and validation callbacks which makes no sense. Additionally the
callbacks were expecting a non-NULL pointer which leads to a crash.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2014139
Fixes: d5ae634ba2
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
Peter Krempa 2021-10-18 09:54:08 +02:00
parent 289aa4bc5b
commit 8eb08e0fc5

View File

@ -2177,10 +2177,10 @@ virNodeDeviceDefParse(const char *str,
g_autoptr(xmlDoc) xml = NULL;
g_autoptr(virNodeDeviceDef) def = NULL;
if ((xml = virXMLParse(filename, str, _("(node_device_definition)"), NULL, false))) {
def = virNodeDeviceDefParseNode(xml, xmlDocGetRootElement(xml),
create, virt_type);
}
if (!(xml = virXMLParse(filename, str, _("(node_device_definition)"), NULL, false)) ||
!(def = virNodeDeviceDefParseNode(xml, xmlDocGetRootElement(xml),
create, virt_type)))
return NULL;
if (parserCallbacks) {
int ret = 0;