[libvirt] [PATCH 0/3] Couple of memleak fixes

Ideally, I'd like to merge these to the release. Michal Privoznik (3): virDomainDiskSourceNetworkParse: Don't leak @tlsCfg or @haveTLS virDomainDiskBackingStoreParse: Don't leak @idx qemuStateInitialize: Don't leak @memoryBackingPath src/conf/domain_conf.c | 3 +++ src/qemu/qemu_driver.c | 1 + 2 files changed, 4 insertions(+) -- 2.13.6

==861== 3 bytes in 1 blocks are definitely lost in loss record 3 of 168 ==861== at 0x4C2AEDF: malloc (vg_replace_malloc.c:299) ==861== by 0x8C7FBC8: xmlStrndup (in /usr/lib64/libxml2.so.2.9.4) ==861== by 0x5DCCDC2: virXMLPropString (virxml.c:510) ==861== by 0x5DF1232: virDomainDiskSourceNetworkParse (domain_conf.c:8445) ==861== by 0x5DF1728: virDomainDiskSourceParse (domain_conf.c:8576) ==861== by 0x5DF41A5: virDomainDiskDefParseXML (domain_conf.c:9238) ==861== by 0x5E1119F: virDomainDefParseXML (domain_conf.c:19233) ==861== by 0x5E146EE: virDomainDefParseNode (domain_conf.c:20083) ==861== by 0x5E14540: virDomainDefParse (domain_conf.c:20027) ==861== by 0x5E145E6: virDomainDefParseFile (domain_conf.c:20053) ==861== by 0x4053CC: testCompareXMLToArgv (qemuxml2argvtest.c:455) ==861== by 0x41F135: virTestRun (testutils.c:180) Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/domain_conf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 81cdf2cca..0fb1c4ad4 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8500,6 +8500,8 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node, ret = 0; cleanup: + VIR_FREE(tlsCfg); + VIR_FREE(haveTLS); VIR_FREE(protocol); return ret; } -- 2.13.6

On Fri, Dec 01, 2017 at 10:09:44 +0100, Michal Privoznik wrote:
==861== 3 bytes in 1 blocks are definitely lost in loss record 3 of 168 ==861== at 0x4C2AEDF: malloc (vg_replace_malloc.c:299) ==861== by 0x8C7FBC8: xmlStrndup (in /usr/lib64/libxml2.so.2.9.4) ==861== by 0x5DCCDC2: virXMLPropString (virxml.c:510) ==861== by 0x5DF1232: virDomainDiskSourceNetworkParse (domain_conf.c:8445) ==861== by 0x5DF1728: virDomainDiskSourceParse (domain_conf.c:8576) ==861== by 0x5DF41A5: virDomainDiskDefParseXML (domain_conf.c:9238) ==861== by 0x5E1119F: virDomainDefParseXML (domain_conf.c:19233) ==861== by 0x5E146EE: virDomainDefParseNode (domain_conf.c:20083) ==861== by 0x5E14540: virDomainDefParse (domain_conf.c:20027) ==861== by 0x5E145E6: virDomainDefParseFile (domain_conf.c:20053) ==861== by 0x4053CC: testCompareXMLToArgv (qemuxml2argvtest.c:455) ==861== by 0x41F135: virTestRun (testutils.c:180)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/domain_conf.c | 2 ++ 1 file changed, 2 insertions(+)
ACK for freeze

==1277== 8 bytes in 4 blocks are definitely lost in loss record 39 of 131 ==1277== at 0x4C2AEDF: malloc (vg_replace_malloc.c:299) ==1277== by 0x68BBBC8: xmlStrndup (in /usr/lib64/libxml2.so.2.9.4) ==1277== by 0x53B1DC2: virXMLPropString (virxml.c:510) ==1277== by 0x53D696A: virDomainDiskBackingStoreParse (domain_conf.c:8639) ==1277== by 0x53DA684: virDomainDiskDefParseXML (domain_conf.c:9590) ==1277== by 0x53F619F: virDomainDefParseXML (domain_conf.c:19233) ==1277== by 0x53F96EE: virDomainDefParseNode (domain_conf.c:20083) ==1277== by 0x53F9540: virDomainDefParse (domain_conf.c:20027) ==1277== by 0x53F95E6: virDomainDefParseFile (domain_conf.c:20053) ==1277== by 0x44D1D4: testCompareDomXML2XMLFiles (testutils.c:1265) ==1277== by 0x42FC7C: testXML2XMLActive (qemuxml2xmltest.c:71) ==1277== by 0x44AD20: virTestRun (testutils.c:180) Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/domain_conf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 0fb1c4ad4..66e21c4bd 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8682,6 +8682,7 @@ virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt, virStorageSourceFree(backingStore); VIR_FREE(type); VIR_FREE(format); + VIR_FREE(idx); ctxt->node = save_ctxt; return ret; } -- 2.13.6

On Fri, Dec 01, 2017 at 10:09:45 +0100, Michal Privoznik wrote:
==1277== 8 bytes in 4 blocks are definitely lost in loss record 39 of 131 ==1277== at 0x4C2AEDF: malloc (vg_replace_malloc.c:299) ==1277== by 0x68BBBC8: xmlStrndup (in /usr/lib64/libxml2.so.2.9.4) ==1277== by 0x53B1DC2: virXMLPropString (virxml.c:510) ==1277== by 0x53D696A: virDomainDiskBackingStoreParse (domain_conf.c:8639) ==1277== by 0x53DA684: virDomainDiskDefParseXML (domain_conf.c:9590) ==1277== by 0x53F619F: virDomainDefParseXML (domain_conf.c:19233) ==1277== by 0x53F96EE: virDomainDefParseNode (domain_conf.c:20083) ==1277== by 0x53F9540: virDomainDefParse (domain_conf.c:20027) ==1277== by 0x53F95E6: virDomainDefParseFile (domain_conf.c:20053) ==1277== by 0x44D1D4: testCompareDomXML2XMLFiles (testutils.c:1265) ==1277== by 0x42FC7C: testXML2XMLActive (qemuxml2xmltest.c:71) ==1277== by 0x44AD20: virTestRun (testutils.c:180)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/domain_conf.c | 1 + 1 file changed, 1 insertion(+)
Oops, that was me. ACK.

==899== 39 bytes in 1 blocks are definitely lost in loss record 732 of 1,003 ==899== at 0x4C2AEDF: malloc (vg_replace_malloc.c:299) ==899== by 0x8B68CE7: vasprintf (in /lib64/libc-2.25.so) ==899== by 0x55498D2: virVasprintfInternal (virstring.c:708) ==899== by 0x55499E7: virAsprintfInternal (virstring.c:729) ==899== by 0x2BECFFF0: qemuGetMemoryBackingBasePath (qemu_conf.c:1757) ==899== by 0x2BF23225: qemuStateInitialize (qemu_driver.c:893) ==899== by 0x563073D: virStateInitialize (libvirt.c:770) ==899== by 0x124CC4: daemonRunStateInit (libvirtd.c:834) ==899== by 0x55521CD: virThreadHelper (virthread.c:206) ==899== by 0x88D9686: start_thread (in /lib64/libpthread-2.25.so) ==899== by 0x8BEAEFE: clone (in /lib64/libc-2.25.so) Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_driver.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 0ec5efbc2..5eae7d24a 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -904,6 +904,7 @@ qemuStateInitialize(bool privileged, virFileUpdatePerm(memoryBackingPath, 0, S_IXGRP | S_IXOTH) < 0) goto error; + VIR_FREE(memoryBackingPath); if (!(qemu_driver->closeCallbacks = virCloseCallbacksNew())) goto error; -- 2.13.6

On Fri, Dec 01, 2017 at 10:09:46 +0100, Michal Privoznik wrote:
==899== 39 bytes in 1 blocks are definitely lost in loss record 732 of 1,003 ==899== at 0x4C2AEDF: malloc (vg_replace_malloc.c:299) ==899== by 0x8B68CE7: vasprintf (in /lib64/libc-2.25.so) ==899== by 0x55498D2: virVasprintfInternal (virstring.c:708) ==899== by 0x55499E7: virAsprintfInternal (virstring.c:729) ==899== by 0x2BECFFF0: qemuGetMemoryBackingBasePath (qemu_conf.c:1757) ==899== by 0x2BF23225: qemuStateInitialize (qemu_driver.c:893) ==899== by 0x563073D: virStateInitialize (libvirt.c:770) ==899== by 0x124CC4: daemonRunStateInit (libvirtd.c:834) ==899== by 0x55521CD: virThreadHelper (virthread.c:206) ==899== by 0x88D9686: start_thread (in /lib64/libpthread-2.25.so) ==899== by 0x8BEAEFE: clone (in /lib64/libc-2.25.so)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_driver.c | 1 + 1 file changed, 1 insertion(+)
ACK
participants (2)
-
Michal Privoznik
-
Peter Krempa