]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
qemuSetupCgroupForVcpu: Fix memleak
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 3 Apr 2015 18:06:17 +0000 (20:06 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 7 Apr 2015 16:52:26 +0000 (18:52 +0200)
==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 <mprivozn@redhat.com>
src/qemu/qemu_cgroup.c

index 50546a1fca587e70605e0c0a9c0c9f0ff0f907ef..e32cd31b469649c651ca811b9c2063b1a6680a41 100644 (file)
@@ -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;