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 --- src/mnl.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/mnl.c b/src/mnl.c index ceb43b06690c..6684029606e5 100644 --- 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); } -- 2.49.1