summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorXiaotian Feng <dfeng@redhat.com>2010-05-31 16:41:09 +0200
committerPatrick McHardy <kaber@trash.net>2010-05-31 16:41:09 +0200
commitc936e8bd1de2fa50c49e3df6fa5036bf07870b67 (patch)
tree41cbd0cad5110ad5fea36564e762a0693184cc05 /net
parent67a3e12b05e055c0415c556a315a3d3eb637e29e (diff)
downloadlinux-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.c4
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) {