netfilter: don't xt_jumpstack_alloc twice in xt_register_table
In xt_register_table, xt_jumpstack_alloc is called first, later xt_replace_table is used. But in xt_replace_table, xt_jumpstack_alloc will be used again. Then the memory allocated by previous xt_jumpstack_alloc will be leaked. We can simply remove the previous xt_jumpstack_alloc because there aren't any users of newinfo between xt_jumpstack_alloc and xt_replace_table. Signed-off-by: Xiaotian Feng <dfeng@redhat.com> Cc: Patrick McHardy <kaber@trash.net> Cc: "David S. Miller" <davem@davemloft.net> Cc: Jan Engelhardt <jengelh@medozas.de> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Alexey Dobriyan <adobriyan@gmail.com> Acked-By: Jan Engelhardt <jengelh@medozas.de> Signed-off-by: Patrick McHardy <kaber@trash.net>
This commit is contained in:
parent
67a3e12b05
commit
c936e8bd1d
@ -844,10 +844,6 @@ struct xt_table *xt_register_table(struct net *net,
|
|||||||
struct xt_table_info *private;
|
struct xt_table_info *private;
|
||||||
struct xt_table *t, *table;
|
struct xt_table *t, *table;
|
||||||
|
|
||||||
ret = xt_jumpstack_alloc(newinfo);
|
|
||||||
if (ret < 0)
|
|
||||||
return ERR_PTR(ret);
|
|
||||||
|
|
||||||
/* Don't add one object to multiple lists. */
|
/* Don't add one object to multiple lists. */
|
||||||
table = kmemdup(input_table, sizeof(struct xt_table), GFP_KERNEL);
|
table = kmemdup(input_table, sizeof(struct xt_table), GFP_KERNEL);
|
||||||
if (!table) {
|
if (!table) {
|
||||||
|
Loading…
Reference in New Issue
Block a user