[PATCH] Properly unref a connection with a close callback

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

 



The connection pointer in the closeCallback data was never
initialized, making the unref in remoteClientCloseFunc a no-op.

This fixes the following leak in virsh when the daemon closes
the connection unexpectedly:

1,179 (288 direct, 891 indirect) bytes in 1 blocks are
   definitely lost in loss record 745 of 792
  at 0x4C2A6D0: calloc (in vgpreload_memcheck-amd64-linux.so)
  by 0x4E9643D: virAllocVar (viralloc.c:558)
  by 0x4ED2425: virObjectNew (virobject.c:190)
  by 0x4F675AC: virGetConnect (datatypes.c:116)
  by 0x4F6EA06: do_open (libvirt.c:1136)
  by 0x4F71017: virConnectOpenAuth (libvirt.c:1481)
  by 0x129FFA: vshReconnect (virsh.c:337)
  by 0x128310: main (virsh.c:2470)
---
 src/libvirt.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/libvirt.c b/src/libvirt.c
index 90608ab..4beb40a 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -21452,6 +21452,7 @@ int virConnectRegisterCloseCallback(virConnectPtr conn,
         goto error;
     }
 
+    conn->closeCallback->conn = conn;
     conn->closeCallback->callback = cb;
     conn->closeCallback->opaque = opaque;
     conn->closeCallback->freeCallback = freecb;
-- 
1.8.3.2

--
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]