From: Alex Jia <ajia@xxxxxxxxxx> Detected by valgrind. Leaks are introduced in commit c1b2264. * src/remote/remote_driver.c (doRemoteOpen): free client program memory in failure path. * How to reproduce? % valgrind -v --leak-check=full virsh -c qemu: * Actual result ==3969== 40 bytes in 1 blocks are definitely lost in loss record 8 of 28 ==3969== at 0x4A04A28: calloc (vg_replace_malloc.c:467) ==3969== by 0x4C89C41: virAlloc (memory.c:101) ==3969== by 0x4D5A236: virNetClientProgramNew (virnetclientprogram.c:60) ==3969== by 0x4D47AB4: doRemoteOpen (remote_driver.c:658) ==3969== by 0x4D49FFF: remoteOpen (remote_driver.c:871) ==3969== by 0x4D13373: do_open (libvirt.c:1196) ==3969== by 0x4D14535: virConnectOpenAuth (libvirt.c:1422) ==3969== by 0x425627: main (virsh.c:18537) ==3969== ==3969== 40 bytes in 1 blocks are definitely lost in loss record 9 of 28 ==3969== at 0x4A04A28: calloc (vg_replace_malloc.c:467) ==3969== by 0x4C89C41: virAlloc (memory.c:101) ==3969== by 0x4D5A236: virNetClientProgramNew (virnetclientprogram.c:60) ==3969== by 0x4D47AD7: doRemoteOpen (remote_driver.c:664) ==3969== by 0x4D49FFF: remoteOpen (remote_driver.c:871) ==3969== by 0x4D13373: do_open (libvirt.c:1196) ==3969== by 0x4D14535: virConnectOpenAuth (libvirt.c:1422) ==3969== by 0x425627: main (virsh.c:18537) ==3969== ==3969== LEAK SUMMARY: ==3969== definitely lost: 80 bytes in 2 blocks Signed-off-by: Alex Jia <ajia@xxxxxxxxxx> --- src/remote/remote_driver.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index e068126..2dacb70 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -753,6 +753,8 @@ doRemoteOpen (virConnectPtr conn, free_qparam_set (vars); failed: + virNetClientProgramFree(priv->remoteProgram); + virNetClientProgramFree(priv->qemuProgram); virNetClientClose(priv->client); virNetClientFree(priv->client); priv->client = NULL; -- 1.7.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list