]> granicus.if.org Git - libnl/commit
Trivial fix for TBF memleak
authorDenys Fedorysychenko <nuclearcat@nuclearcat.com>
Fri, 9 Jul 2010 23:48:06 +0000 (02:48 +0300)
committerThomas Graf <tgraf@suug.ch>
Wed, 13 Oct 2010 11:24:25 +0000 (13:24 +0200)
commit86b6f6f6291eaaec542a2f4028087fa823122082
treede16523380275b43c31fb1ad642f4f0eac732981
parent018c297274348acba1e123a3e84471c75a215efb
Trivial fix for TBF memleak

Without this patch, running alloc / free cache loop  will lead to huge memory
leaks on machine with 3000 interfaces with tbf qdiscs.

Here was valgrind output:

==5580== 18,070,728 bytes in 347,514 blocks are definitely lost in loss record
32 of 32
==5580==    at 0x4025485: calloc (in /lib/valgrind/vgpreload_memcheck-x86-
linux.so)
==5580==    by 0x405F410: tbf_msg_parser (tbf.c:46)
==5580==    by 0x405302B: qdisc_msg_parser (qdisc.c:119)
==5580==    by 0x4033DC9: nl_cache_parse (cache.c:643)
==5580==    by 0x4033E7C: update_msg_parser (cache.c:460)
==5580==    by 0x4038A11: nl_recvmsgs (netlink-local.h:112)
==5580==    by 0x4034175: __cache_pickup (cache.c:483)
==5580==    by 0x40343FF: nl_cache_pickup (cache.c:516)
==5580==    by 0x403447D: nl_cache_refill (cache.c:698)
==5580==    by 0x4034AB7: nl_cache_alloc_and_fill (cache.c:198)
==5580==    by 0x4053216: rtnl_qdisc_alloc_cache (qdisc.c:388)
==5580==    by 0x80489DB: main (in /home/root/nltest)

Patch complied and tested for same test case, no more leaks anymore.
lib/route/sch/tbf.c