Re: [PATCH] rpc: Plug memory leaks on doRemoteOpen() failure path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/10/2012 02:28 PM, Osier Yang wrote:
On 2012年02月10日 13:57, ajia@xxxxxxxxxx wrote:
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;

ACK

Thanks and pushed now.

Alex

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]