]> xenbits.xensource.com Git - libvirt.git/commit
adminDaemonListServers: Don't leak @srv_names array
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 22 Feb 2016 06:25:18 +0000 (07:25 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 22 Feb 2016 06:25:18 +0000 (07:25 +0100)
commit702713af5add8c0c1757f4610a61f95834d46cca
treed420ec348105ed65c4f80574af66ca4fc6cf9f0e
parentd8fc7e05f8f5d5c5f793d7fb54e895f25f9394ef
adminDaemonListServers: Don't leak @srv_names array

When getting a list of servers registered for a daemon, it's
returned as a dynamically allocated array filled in with pointers
to constant strings. Because the array is dynamic, it should be
freed when no longer needed (but not the strings!). Even the
function that creates the array suggests that.

==19446== 48 bytes in 3 blocks are definitely lost in loss record 821 of 1,034
==19446==    at 0x4C2C28E: realloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==19446==    by 0x54BAFC8: virReallocN (viralloc.c:245)
==19446==    by 0x54BB0BE: virExpandN (viralloc.c:294)
==19446==    by 0x54BB391: virInsertElementsN (viralloc.c:436)
==19446==    by 0x164E3D: virNetDaemonGetServerNames (virnetdaemon.c:217)
==19446==    by 0x15616F: adminDaemonListServers (admin_server.c:52)
==19446==    by 0x155B8C: adminDispatchConnectListServers (admin.c:151)
==19446==    by 0x155FD8: adminDispatchConnectListServersHelper (admin_dispatch.h:101)
==19446==    by 0x568E862: virNetServerProgramDispatchCall (virnetserverprogram.c:437)
==19446==    by 0x568E3C3: virNetServerProgramDispatch (virnetserverprogram.c:307)
==19446==    by 0x5687B5B: virNetServerProcessMsg (virnetserver.c:135)
==19446==    by 0x5687C1B: virNetServerHandleJob (virnetserver.c:156)

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
daemon/admin_server.c