diff options
author | Florian Westphal <fw@strlen.de> | 2023-08-12 13:05:16 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-08-23 17:52:34 +0200 |
commit | 00ea7eb1c69eec91cdf9259f0e427c56e7999fcd (patch) | |
tree | bff17db6de3075916a6031bc1d25d6d4c85a5c16 /net/netfilter | |
parent | a800fcd8f18d6b6a7bf6eb1d9ee55c7106f03486 (diff) | |
download | linux-stable-00ea7eb1c69eec91cdf9259f0e427c56e7999fcd.tar.gz linux-stable-00ea7eb1c69eec91cdf9259f0e427c56e7999fcd.tar.bz2 linux-stable-00ea7eb1c69eec91cdf9259f0e427c56e7999fcd.zip |
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>
Diffstat (limited to 'net/netfilter')
-rw-r--r-- | net/netfilter/nf_tables_api.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index f6e627383885..4c2df7af73f7 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -6874,6 +6874,7 @@ static int nft_set_catchall_flush(const struct nft_ctx *ctx, ret = __nft_set_catchall_flush(ctx, set, &elem); if (ret < 0) break; + nft_set_elem_change_active(ctx->net, set, ext); } return ret; |