From 9dbe6f3151282d507adf75f20abfbdfc45345e02 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Fri, 3 Apr 2015 20:06:17 +0200 Subject: [PATCH] qemuSetupCgroupForVcpu: Fix memleak ==19015== 1,064 (656 direct, 408 indirect) bytes in 2 blocks are definitely lost in loss record 1,002 of 1,049 ==19015== at 0x4C2C070: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==19015== by 0x52AD74B: virAlloc (viralloc.c:144) ==19015== by 0x52B47CA: virCgroupNew (vircgroup.c:1057) ==19015== by 0x52B53E5: virCgroupNewVcpu (vircgroup.c:1451) ==19015== by 0x1DD85A40: qemuSetupCgroupForVcpu (qemu_cgroup.c:1013) ==19015== by 0x1DDA66EA: qemuProcessStart (qemu_process.c:4844) ==19015== by 0x1DDF1807: qemuDomainObjStart (qemu_driver.c:7265) ==19015== by 0x1DDF1A66: qemuDomainCreateWithFlags (qemu_driver.c:7320) ==19015== by 0x1DDF1ACD: qemuDomainCreate (qemu_driver.c:7337) ==19015== by 0x53F87EA: virDomainCreate (libvirt-domain.c:6820) ==19015== by 0x12690A: remoteDispatchDomainCreate (remote_dispatch.h:3481) ==19015== by 0x126827: remoteDispatchDomainCreateHelper (remote_dispatch.h:3457) Signed-off-by: Michal Privoznik --- src/qemu/qemu_cgroup.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c index 50546a1fca..e32cd31b46 100644 --- a/src/qemu/qemu_cgroup.c +++ b/src/qemu/qemu_cgroup.c @@ -1010,6 +1010,7 @@ qemuSetupCgroupForVcpu(virDomainObjPtr vm) goto cleanup; for (i = 0; i < priv->nvcpupids; i++) { + virCgroupFree(&cgroup_vcpu); if (virCgroupNewVcpu(priv->cgroup, i, true, &cgroup_vcpu) < 0) goto cleanup; @@ -1050,9 +1051,8 @@ qemuSetupCgroupForVcpu(virDomainObjPtr vm) if (qemuSetupCgroupCpusetCpus(cgroup_vcpu, cpumap) < 0) goto cleanup; } - - virCgroupFree(&cgroup_vcpu); } + virCgroupFree(&cgroup_vcpu); VIR_FREE(mem_mask); return 0;