]> git.baikalelectronics.ru Git - kernel.git/commit
netfilter: nf_tables: deactivate catchall elements in next generation
authorFlorian Westphal <fw@strlen.de>
Sat, 12 Aug 2023 11:05:16 +0000 (13:05 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 23 Aug 2023 15:52:34 +0000 (17:52 +0200)
commit00ea7eb1c69eec91cdf9259f0e427c56e7999fcd
treebff17db6de3075916a6031bc1d25d6d4c85a5c16
parenta800fcd8f18d6b6a7bf6eb1d9ee55c7106f03486
netfilter: nf_tables: deactivate catchall elements in next generation

[ Upstream commit 90e5b3462efa37b8bba82d7c4e63683856e188af ]

When flushing, individual set elements are disabled in the next
generation via the ->flush callback.

Catchall elements are not disabled.  This is incorrect and may lead to
double-deactivations of catchall elements which then results in memory
leaks:

WARNING: CPU: 1 PID: 3300 at include/net/netfilter/nf_tables.h:1172 nft_map_deactivate+0x549/0x730
CPU: 1 PID: 3300 Comm: nft Not tainted 6.5.0-rc5+ #60
RIP: 0010:nft_map_deactivate+0x549/0x730
 [..]
 ? nft_map_deactivate+0x549/0x730
 nf_tables_delset+0xb66/0xeb0

(the warn is due to nft_use_dec() detecting underflow).

Fixes: aaa31047a6d2 ("netfilter: nftables: add catch-all set element support")
Reported-by: lonial con <kongln9170@gmail.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/netfilter/nf_tables_api.c