Add multiple free for each call to lookup_args()
authorJérôme Poulin <jeromepoulin@gmail.com>
Wed, 6 Feb 2013 18:10:17 +0000 (18:10 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Mon, 22 Apr 2013 13:10:46 +0000 (15:10 +0200)
commit1e1f503d8fb8336da22029faaa1a7252bed22976
tree1e596f14ddb5701b6eb8336e72edf3f2a5c53b66
parent6c71e7ee00c98eec9bd1cc92b903738863aebd57
Add multiple free for each call to lookup_args()

This memory leak can be reproduced using a tight loop to uci:get() a config.

lua -e 'require("posix"); require("uci");
function getconf()
   local tmp, uc = uci.cursor();
   tmp = uc:get("system", "ntp", "enable_server");
end;

while 1
do
   for i=0,1000 do getconf() end;
   print("gc");
   print(collectgarbage("count"));
   collectgarbage();
   print(collectgarbage("count"));
   print("sleep 1");
   posix.sleep(1);
end'
lua/uci.c