From 702713af5add8c0c1757f4610a61f95834d46cca Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Mon, 22 Feb 2016 07:25:18 +0100 Subject: [PATCH] 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 --- daemon/admin_server.c | 1 + 1 file changed, 1 insertion(+) diff --git a/daemon/admin_server.c b/daemon/admin_server.c index 7521e822c2..0196bfe8d4 100644 --- a/daemon/admin_server.c +++ b/daemon/admin_server.c @@ -68,6 +68,7 @@ adminDaemonListServers(virNetDaemonPtr dmn, ret = nsrvs; cleanup: + VIR_FREE(srv_names); virObjectListFree(srvs); return ret; }