Commit 9e2c6c36 authored by Florian Westphal's avatar Florian Westphal Committed by Guo Mengqi
Browse files

netfilter: nf_tables: set dormant flag on hook register failure

stable inclusion
from stable-v5.10.211
commit 31ea574aeca1aa488e18716459bde057217637af
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I9HJR8

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=31ea574aeca1aa488e18716459bde057217637af



--------------------------------

[ Upstream commit bccebf64701735533c8db37773eeacc6566cc8ec ]

We need to set the dormant flag again if we fail to register
the hooks.

During memory pressure hook registration can fail and we end up
with a table marked as active but no registered hooks.

On table/base chain deletion, nf_tables will attempt to unregister
the hook again which yields a warn splat from the nftables core.

Reported-and-tested-by: default avatar <syzbot+de4025c006ec68ac56fc@syzkaller.appspotmail.com>
Fixes: 179d9ba5 ("netfilter: nf_tables: fix table flag updates")
Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarWang Hai <wanghai38@huawei.com>
parent 83e8197d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1150,6 +1150,7 @@ static int nf_tables_updtable(struct nft_ctx *ctx)
	return 0;

err_register_hooks:
	ctx->table->flags |= NFT_TABLE_F_DORMANT;
	nft_trans_destroy(trans);
	return ret;
}