diff options
author | Xiaotian Feng <dfeng@redhat.com> | 2010-05-31 16:41:09 +0200 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-05-31 16:41:09 +0200 |
commit | c936e8bd1de2fa50c49e3df6fa5036bf07870b67 (patch) | |
tree | 41cbd0cad5110ad5fea36564e762a0693184cc05 /net | |
parent | 67a3e12b05e055c0415c556a315a3d3eb637e29e (diff) | |
download | linux-3.10-c936e8bd1de2fa50c49e3df6fa5036bf07870b67.tar.gz linux-3.10-c936e8bd1de2fa50c49e3df6fa5036bf07870b67.tar.bz2 linux-3.10-c936e8bd1de2fa50c49e3df6fa5036bf07870b67.zip |
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/netfilter/x_tables.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c index 445de702b8b..47b1e7917a9 100644 --- a/net/netfilter/x_tables.c +++ b/net/netfilter/x_tables.c @@ -844,10 +844,6 @@ struct xt_table *xt_register_table(struct net *net, struct xt_table_info *private; 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. */ table = kmemdup(input_table, sizeof(struct xt_table), GFP_KERNEL); if (!table) { |