]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
mnl: silence compiler warning
authorFlorian Westphal <fw@strlen.de>
Wed, 20 Aug 2025 12:44:43 +0000 (14:44 +0200)
committerFlorian Westphal <fw@strlen.de>
Thu, 21 Aug 2025 07:38:51 +0000 (09:38 +0200)
gcc 14.3.0 reports this:

src/mnl.c: In function 'mnl_nft_chain_add':
src/mnl.c:916:25: warning: 'nest' may be used uninitialized [-Wmaybe-uninitialized]
  916 |                         mnl_attr_nest_end(nlh, nest);

I guess its because compiler can't know that the conditions cannot change
in-between and assumes nest_end() can be called without nest_start().

Fixes: 01277922fede ("src: ensure chain policy evaluation when specified")
Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/mnl.c

index ceb43b06690c01c5511abe235512992c10393a67..6684029606e5f93e608cccac56cfd08cbfa21c3c 100644 (file)
--- a/src/mnl.c
+++ b/src/mnl.c
@@ -890,7 +890,7 @@ int mnl_nft_chain_add(struct netlink_ctx *ctx, struct cmd *cmd,
        nftnl_chain_nlmsg_build_payload(nlh, nlc);
 
        if (cmd->chain && cmd->chain->flags & CHAIN_F_BASECHAIN) {
-               struct nlattr *nest;
+               struct nlattr *nest = NULL;
 
                if (cmd->chain->type.str) {
                        cmd_add_loc(cmd, nlh, &cmd->chain->type.loc);
@@ -911,8 +911,7 @@ int mnl_nft_chain_add(struct netlink_ctx *ctx, struct cmd *cmd,
                if (cmd->chain && cmd->chain->dev_expr)
                        mnl_nft_chain_devs_build(nlh, cmd);
 
-               if (cmd->chain->type.str ||
-                   (cmd->chain && cmd->chain->dev_expr))
+               if (nest)
                        mnl_attr_nest_end(nlh, nest);
        }