]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commit
Plug leak in virCgroupMoveTask
authorJán Tomko <jtomko@redhat.com>
Wed, 26 Jun 2013 12:55:27 +0000 (14:55 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 26 Jun 2013 13:38:01 +0000 (15:38 +0200)
commit5bc8ecb8d1170f41d4c177c1cf0e87c54194a3a3
tree97e339e571bb706d9fe658ab80d2b68d5cf553a5
parent306c49ffd56a1c72b1892d50f2a75531c62f4a1d
Plug leak in virCgroupMoveTask

We only break out of the while loop if *content is an empty string.
However the buffer has been allocated to BUFSIZ + 1 (8193 in my case),
but it gets overwritten in the next for iteration.

Move VIR_FREE right before we overwrite it to avoid the leak.

==5777== 16,386 bytes in 2 blocks are definitely lost in loss record 1,022 of 1,027
==5777==    by 0x5296E28: virReallocN (viralloc.c:184)
==5777==    by 0x52B0C66: virFileReadLimFD (virfile.c:1137)
==5777==    by 0x52B0E1A: virFileReadAll (virfile.c:1199)
==5777==    by 0x529B092: virCgroupGetValueStr (vircgroup.c:534)
==5777==    by 0x529AF64: virCgroupMoveTask (vircgroup.c:1079)

Introduced by 83e4c77.

https://bugzilla.redhat.com/show_bug.cgi?id=978352
src/util/vircgroup.c