From bf1f8e280c330f51833189d40a99dc894205a129 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Wed, 5 Nov 2014 12:34:51 +0100 Subject: [PATCH] remote: Fix memory leak in remoteConnectGetAllDomainStats The remote call actually doesn't free the arguments array so we leak memory in case a domain list is specified. As the remote domain list array consists only of stolen pointers from the actual domain objects it's sufficient just to free the array. Valgrind message: ==1081452== 64 bytes in 1 blocks are definitely lost in loss record 632 of 726 ==1081452== at 0x4C296D0: calloc (vg_replace_malloc.c:618) ==1081452== by 0x4EA5CB4: virAllocN (viralloc.c:191) ==1081452== by 0x505D21E: remoteConnectGetAllDomainStats (remote_driver.c:7785) ==1081452== by 0x50081AA: virDomainListGetStats (libvirt-domain.c:11080) ==1081452== by 0x155249: cmdDomstats (virsh-domain-monitor.c:2147) ==1081452== by 0x12FB73: vshCommandRun (virsh.c:1935) ==1081452== by 0x133FEB: main (virsh.c:3719) --- src/remote/remote_driver.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 65c04d98c6..d111e109cf 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -7846,6 +7846,7 @@ remoteConnectGetAllDomainStats(virConnectPtr conn, VIR_FREE(elem); } virDomainStatsRecordListFree(tmpret); + VIR_FREE(args.doms.doms_val); xdr_free((xdrproc_t)xdr_remote_connect_get_all_domain_stats_ret, (char *) &ret); -- GitLab