From: Peter Krempa Date: Tue, 25 Feb 2025 11:42:49 +0000 (+0100) Subject: virDomainIothreadMappingDefParse: Fix usage of virXMLNodeGetSubelementList X-Git-Tag: v11.2.0-rc1~169 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ee6848ca545ae0381a99e3626142f3e16ee6024;p=thirdparty%2Flibvirt.git virDomainIothreadMappingDefParse: Fix usage of virXMLNodeGetSubelementList virXMLNodeGetSubelementList always returns a non-NULL pointers thus we should check the length instead. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index d555873848..b94cf99236 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -7970,19 +7970,21 @@ virDomainIothreadMappingDefParse(xmlNodePtr driverNode, if (!(iothreadsNode = virXMLNodeGetSubelement(driverNode, "iothreads"))) return 0; - if (!(iothreadNodes = virXMLNodeGetSubelementList(iothreadsNode, "iothread"))) + iothreadNodes = virXMLNodeGetSubelementList(iothreadsNode, "iothread"); + + if (iothreadNodes->len == 0) return 0; for (i = 0; i < iothreadNodes->len; i++) { xmlNodePtr iothNode = g_ptr_array_index(iothreadNodes, i); g_autoptr(virDomainIothreadMappingDef) iothdef = g_new0(virDomainIothreadMappingDef, 1); - g_autoptr(GPtrArray) queueNodes = NULL; + g_autoptr(GPtrArray) queueNodes = virXMLNodeGetSubelementList(iothNode, "queue"); if (virXMLPropUInt(iothNode, "id", 10, VIR_XML_PROP_REQUIRED, &iothdef->id) < 0) return -1; - if ((queueNodes = virXMLNodeGetSubelementList(iothNode, "queue"))) { + if (queueNodes->len > 0) { size_t q; iothdef->queues = g_new0(unsigned int, queueNodes->len);