Skip to content

Commit

Permalink
netfilter: nf_tables: discard table flag update with pending basechai…
Browse files Browse the repository at this point in the history
…n deletion

commit 1bc83a0 upstream.

Hook unregistration is deferred to the commit phase, same occurs with
hook updates triggered by the table dormant flag. When both commands are
combined, this results in deleting a basechain while leaving its hook
still registered in the core.

Fixes: 179d9ba ("netfilter: nf_tables: fix table flag updates")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
ummakynes authored and gregkh committed Apr 10, 2024
1 parent e684b16 commit 7f609f6
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions net/netfilter/nf_tables_api.c
Expand Up @@ -1207,10 +1207,11 @@ static bool nft_table_pending_update(const struct nft_ctx *ctx)
return true;

list_for_each_entry(trans, &nft_net->commit_list, list) {
if ((trans->msg_type == NFT_MSG_NEWCHAIN ||
trans->msg_type == NFT_MSG_DELCHAIN) &&
trans->ctx.table == ctx->table &&
nft_trans_chain_update(trans))
if (trans->ctx.table == ctx->table &&
((trans->msg_type == NFT_MSG_NEWCHAIN &&
nft_trans_chain_update(trans)) ||
(trans->msg_type == NFT_MSG_DELCHAIN &&
nft_is_base_chain(trans->ctx.chain))))
return true;
}

Expand Down

0 comments on commit 7f609f6

Please sign in to comment.