iptables: Fix memory leak when invoking xtables_find_match
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Fri, 24 May 2013 13:27:01 +0000 (15:27 +0200)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Fri, 31 May 2013 08:01:13 +0000 (11:01 +0300)
commitbac356ff03abd450b471ae19036d5069171007c2
tree875e01f1b13c95cc431f0795b3c8bbf37329dddb
parenteda292ce0c92f6e866474ea72b3fea7a1b37029b
iptables: Fix memory leak when invoking xtables_find_match

xtables_find_match() returns two different kind of pointers.
The first type is pointing to the function pointer table loaded
via dlopen(). The second type is a copy (via plain malloc) of the
first type. xtables_find_match() marks the copies/clones with
m == m->next. So we need to free the struct xtables_match which
point back to themself.

Also fix the issue that we didn't handle multple match instances
at the same time.

The memory leak is only visible when having more than one match
of a kind.
src/iptables.c