netfilter: nft_set_pipapo: stop GC iteration if GC transaction allocation fails

commit 6d365eabce upstream.

nft_trans_gc_queue_sync() enqueues the GC transaction and it allocates a
new one. If this allocation fails, then stop this GC sync run and retry
later.

Fixes: 5f68718b34 ("netfilter: nf_tables: GC transaction API to avoid race with control plane")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Pablo Neira Ayuso 2023-09-22 18:43:11 +02:00 committed by Greg Kroah-Hartman
parent 949369f9f0
commit 83d3a4607c
1 changed files with 1 additions and 1 deletions

View File

@ -1597,7 +1597,7 @@ static void pipapo_gc(const struct nft_set *_set, struct nft_pipapo_match *m)
gc = nft_trans_gc_queue_sync(gc, GFP_ATOMIC);
if (!gc)
break;
return;
nft_pipapo_gc_deactivate(net, set, e);
pipapo_drop(m, rulemap);