From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Phil Sutter <phil@nwl.cc>
Cc: Florian Westphal <fw@strlen.de>, netfilter-devel@vger.kernel.org
Subject: Re: [nf PATCH v2 1/8] netfilter: nf_tables: Don't allocate nft_rule_dump_ctx
Date: Thu, 28 Sep 2023 20:49:33 +0200 [thread overview]
Message-ID: <ZRXKvYUATXz1cIDG@calendula> (raw)
In-Reply-To: <20230928165244.7168-2-phil@nwl.cc>
On Thu, Sep 28, 2023 at 06:52:37PM +0200, Phil Sutter wrote:
[...]
This whole chunk below looks like a cleanup to remove one indentation
level? Please add an initial patch for this.
> static int nf_tables_dump_rules_start(struct netlink_callback *cb)
> {
> + struct nft_rule_dump_ctx *ctx = (void *)cb->ctx;
> 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;
> + BUILD_BUG_ON(sizeof(*ctx) > sizeof(cb->ctx));
>
> - 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_TABLE]) {
> + ctx->table = nla_strdup(nla[NFTA_RULE_TABLE], GFP_ATOMIC);
> + if (!ctx->table)
> + return -ENOMEM;
> + }
> + if (nla[NFTA_RULE_CHAIN]) {
> + ctx->chain = nla_strdup(nla[NFTA_RULE_CHAIN], GFP_ATOMIC);
> + if (!ctx->chain) {
> + kfree(ctx->table);
> + return -ENOMEM;
> }
> }
> + if (NFNL_MSG_TYPE(cb->nlh->nlmsg_type) == NFT_MSG_GETRULE_RESET)
> + ctx->reset = true;
>
> - cb->data = ctx;
> return 0;
> }
>
> static int nf_tables_dump_rules_done(struct netlink_callback *cb)
> {
> - struct nft_rule_dump_ctx *ctx = cb->data;
> + struct nft_rule_dump_ctx *ctx = (void *)cb->ctx;
>
> - if (ctx) {
> - kfree(ctx->table);
> - kfree(ctx->chain);
> - kfree(ctx);
> - }
> + kfree(ctx->table);
> + kfree(ctx->chain);
> return 0;
> }
>
> --
> 2.41.0
>
next prev parent reply other threads:[~2023-09-28 18:49 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-28 16:52 [nf PATCH v2 0/8] Introduce locking for reset requests Phil Sutter
2023-09-28 16:52 ` [nf PATCH v2 1/8] netfilter: nf_tables: Don't allocate nft_rule_dump_ctx Phil Sutter
2023-09-28 18:49 ` Pablo Neira Ayuso [this message]
2023-09-29 10:15 ` Phil Sutter
2023-09-28 19:00 ` Florian Westphal
2023-09-29 10:13 ` Phil Sutter
2023-09-28 16:52 ` [nf PATCH v2 2/8] netfilter: nf_tables: Introduce nf_tables_getrule_single() Phil Sutter
2023-09-28 16:52 ` [nf PATCH v2 3/8] netfilter: nf_tables: Add locking for NFT_MSG_GETRULE_RESET requests Phil Sutter
2023-09-28 16:52 ` [nf PATCH v2 4/8] netfilter: nf_tables: Introduce struct nft_obj_dump_ctx Phil Sutter
2023-09-28 16:52 ` [nf PATCH v2 5/8] netfilter: nf_tables: Introduce nf_tables_getobj_single Phil Sutter
2023-09-28 16:52 ` [nf PATCH v2 6/8] netfilter: nf_tables: Add locking for NFT_MSG_GETOBJ_RESET requests Phil Sutter
2023-09-28 16:52 ` [nf PATCH v2 7/8] netfilter: nf_tables: Pass reset bit in nft_set_dump_ctx Phil Sutter
2023-09-28 18:53 ` Pablo Neira Ayuso
2023-09-29 10:08 ` Phil Sutter
2023-09-29 10:15 ` Pablo Neira Ayuso
2023-09-29 10:18 ` Phil Sutter
2023-09-29 10:56 ` Pablo Neira Ayuso
2023-09-29 11:12 ` Phil Sutter
2023-09-28 16:52 ` [nf PATCH v2 8/8] netfilter: nf_tables: Add locking for NFT_MSG_GETSETELEM_RESET requests Phil Sutter
2023-09-28 17:46 ` Florian Westphal
2023-09-28 18:47 ` Pablo Neira Ayuso
2023-09-28 18:57 ` Florian Westphal
2023-09-28 19:04 ` Pablo Neira Ayuso
2023-09-28 19:21 ` Florian Westphal
2023-09-28 20:07 ` Florian Westphal
2023-09-29 11:25 ` Phil Sutter
2023-09-29 11:30 ` Florian Westphal
2023-09-29 11:45 ` Phil Sutter
2023-09-28 19:39 ` Jozsef Kadlecsik
2023-09-28 20:09 ` Florian Westphal
2023-09-28 20:25 ` Jozsef Kadlecsik
2023-09-29 11:03 ` Phil Sutter
2023-09-28 18:51 ` Pablo Neira Ayuso
2023-09-29 10:28 ` Phil Sutter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZRXKvYUATXz1cIDG@calendula \
--to=pablo@netfilter.org \
--cc=fw@strlen.de \
--cc=netfilter-devel@vger.kernel.org \
--cc=phil@nwl.cc \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox