Message ID | 20231010145343.12551-2-fw@strlen.de (mailing list archive) |
---|---|
State | Accepted |
Commit | afed2b54c5403393986c3b3555152dfd4ab7998a |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,1/8] netfilter: nf_tables: Always allocate nft_rule_dump_ctx | expand |
Hello: This series was applied to netdev/net-next.git (main) by Florian Westphal <fw@strlen.de>: On Tue, 10 Oct 2023 16:53:31 +0200 you wrote: > From: Phil Sutter <phil@nwl.cc> > > It will move into struct netlink_callback's scratch area later, just put > nf_tables_dump_rules_start in shape to reduce churn later. > > Suggested-by: Pablo Neira Ayuso <pablo@netfilter.org> > Signed-off-by: Phil Sutter <phil@nwl.cc> > Signed-off-by: Florian Westphal <fw@strlen.de> > > [...] Here is the summary with links: - [net-next,1/8] netfilter: nf_tables: Always allocate nft_rule_dump_ctx https://git.kernel.org/netdev/net-next/c/afed2b54c540 - [net-next,2/8] netfilter: nf_tables: Drop pointless memset when dumping rules https://git.kernel.org/netdev/net-next/c/30fa41a0f6df - [net-next,3/8] netfilter: nf_tables: Carry reset flag in nft_rule_dump_ctx https://git.kernel.org/netdev/net-next/c/405c8fd62d61 - [net-next,4/8] netfilter: nf_tables: Carry s_idx in nft_rule_dump_ctx https://git.kernel.org/netdev/net-next/c/8194d599bc01 - [net-next,5/8] netfilter: nf_tables: Don't allocate nft_rule_dump_ctx https://git.kernel.org/netdev/net-next/c/99ab9f84b85e - [net-next,6/8] netfilter: conntrack: simplify nf_conntrack_alter_reply https://git.kernel.org/netdev/net-next/c/8a23f4ab92f9 - [net-next,7/8] netfilter: conntrack: prefer tcp_error_log to pr_debug https://git.kernel.org/netdev/net-next/c/6ac9c51eebe8 - [net-next,8/8] netfilter: cleanup struct nft_table https://git.kernel.org/netdev/net-next/c/94ecde833be5 You are awesome, thank you!
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index b4405db710b0..ea30bee41a6e 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -3521,10 +3521,10 @@ static int nf_tables_dump_rules(struct sk_buff *skb, if (family != NFPROTO_UNSPEC && family != table->family) continue; - if (ctx && ctx->table && strcmp(ctx->table, table->name) != 0) + if (ctx->table && strcmp(ctx->table, table->name) != 0) continue; - if (ctx && ctx->table && ctx->chain) { + if (ctx->table && ctx->chain) { struct rhlist_head *list, *tmp; list = rhltable_lookup(&table->chains_ht, ctx->chain, @@ -3548,7 +3548,7 @@ static int nf_tables_dump_rules(struct sk_buff *skb, goto done; } - if (ctx && ctx->table) + if (ctx->table) break; } done: @@ -3563,27 +3563,23 @@ static int nf_tables_dump_rules_start(struct netlink_callback *cb) const struct nlattr * const *nla = cb->data; struct nft_rule_dump_ctx *ctx = NULL; - if (nla[NFTA_RULE_TABLE] || nla[NFTA_RULE_CHAIN]) { - ctx = kzalloc(sizeof(*ctx), GFP_ATOMIC); - if (!ctx) - return -ENOMEM; + ctx = kzalloc(sizeof(*ctx), GFP_ATOMIC); + if (!ctx) + return -ENOMEM; - if (nla[NFTA_RULE_TABLE]) { - ctx->table = nla_strdup(nla[NFTA_RULE_TABLE], - GFP_ATOMIC); - if (!ctx->table) { - kfree(ctx); - return -ENOMEM; - } + if (nla[NFTA_RULE_TABLE]) { + ctx->table = nla_strdup(nla[NFTA_RULE_TABLE], GFP_ATOMIC); + if (!ctx->table) { + kfree(ctx); + return -ENOMEM; } - if (nla[NFTA_RULE_CHAIN]) { - ctx->chain = nla_strdup(nla[NFTA_RULE_CHAIN], - GFP_ATOMIC); - if (!ctx->chain) { - kfree(ctx->table); - kfree(ctx); - return -ENOMEM; - } + } + if (nla[NFTA_RULE_CHAIN]) { + ctx->chain = nla_strdup(nla[NFTA_RULE_CHAIN], GFP_ATOMIC); + if (!ctx->chain) { + kfree(ctx->table); + kfree(ctx); + return -ENOMEM; } } @@ -3595,11 +3591,9 @@ static int nf_tables_dump_rules_done(struct netlink_callback *cb) { struct nft_rule_dump_ctx *ctx = cb->data; - if (ctx) { - kfree(ctx->table); - kfree(ctx->chain); - kfree(ctx); - } + kfree(ctx->table); + kfree(ctx->chain); + kfree(ctx); return 0; }