[libvirt] [PATCH] admin: Resolve leaked reference to private data

Martin Kletzander mkletzan at redhat.com
Tue Sep 8 08:04:24 UTC 2015


On Mon, Sep 07, 2015 at 05:45:57PM +0200, Erik Skultety wrote:
>Running valgrind on a very simplistic program consisting only from
>opening and closing admin connection (virAdmConnect{Open,Close}) shows a
>leak in remoteAdminPrivNew, because the last reference to privateData is
>not decremented, thus the object won't be disposed. This patch unrefs
>the privateData object once we closed the active connection to daemon,
>making further use of this connection  useless.
>
>==24577==    at 0x4A089C7: calloc (in /usr/lib64/valgrind/vgpreload_***linux.so)
>==24577==    by 0x4E8835F: virAllocVar (viralloc.c:560)
>==24577==    by 0x4EDFA5C: virObjectNew (virobject.c:193)
>==24577==    by 0x4EDFBD4: virObjectLockableNew (virobject.c:219)
>==24577==    by 0x4C14DAF: remoteAdminPrivNew (libvirt-admin.c:152)
>==24577==    by 0x4C1537E: virAdmConnectOpen (libvirt-admin.c:308)
>==24577==    by 0x400BAD: main (listservers.c:39)
>
>==24577== LEAK SUMMARY:
>==24577==    definitely lost: 80 bytes in 1 blocks
>==24577==    indirectly lost: 840 bytes in 6 blocks
>==24577==      possibly lost: 0 bytes in 0 blocks
>==24577==    still reachable: 12,179 bytes in 199 blocks
>==24577==         suppressed: 0 bytes in 0 blocks
>---
> src/libvirt-admin.c | 1 +
> 1 file changed, 1 insertion(+)
>

ACK

>diff --git a/src/libvirt-admin.c b/src/libvirt-admin.c
>index b3fd0b3..5a4fc48 100644
>--- a/src/libvirt-admin.c
>+++ b/src/libvirt-admin.c
>@@ -132,6 +132,7 @@ remoteAdminPrivFree(void *opaque)
>     virAdmConnectPtr conn = opaque;
>
>     remoteAdminConnectClose(conn);
>+    virObjectUnref(conn->privateData);
> }
>
> static remoteAdminPrivPtr
>--
>2.4.3
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150908/fdc157e9/attachment-0001.sig>


More information about the libvir-list mailing list