On Monday 2010-05-31 13:06, Xiaotian Feng wrote: >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. Indeed that seems to be so. >diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c >index 445de70..47b1e79 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) { -- To unsubscribe from this list: send the line "unsubscribe netfilter" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html