The qemuDomainObjPrivateXMLParse() is responsible for parsing given XML into qemuDomainObjPrivate struct. As it does so, memory might be allocated for some members. If an error occurs during parsing the control jumps onto 'error' label where only some of previously allocated memory is freed. The reason there's no memory leak is simple: the only caller (virDomainObjParseXML()) unrefs freshly created virDomainObj which in turn causes qemuDomainObjPrivateFree() to be called. Therefore, these partial, selective frees are needless and should be just dropped. Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> --- src/qemu/qemu_domain.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 9602a42196..4de4840c8e 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -3118,9 +3118,6 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, return 0; error: - g_clear_pointer(&priv->namespaces, virBitmapFree); - g_clear_pointer(&priv->monConfig, virObjectUnref); - g_clear_pointer(&priv->qemuDevices, g_strfreev); return -1; } -- 2.35.1