Message ID | 1275303998-2435-1-git-send-email-dfeng@redhat.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
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 netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Monday 2010-05-31 13:51, Jan Engelhardt wrote: >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. Acked-By: Jan Engelhardt <jengelh@medozas.de> > >>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@vger.kernel.org >More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Jan Engelhardt wrote: > On Monday 2010-05-31 13:51, Jan Engelhardt wrote: >> 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. > > Acked-By: Jan Engelhardt <jengelh@medozas.de> Applied, thanks everyone. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Jan Engelhardt wrote: > On Monday 2010-05-31 13:51, Jan Engelhardt wrote: >> 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. > > Acked-By: Jan Engelhardt <jengelh@medozas.de> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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) {
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> --- net/netfilter/x_tables.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-)