diff mbox series

[nf] Revert "netfilter: nf_tables: do not remove elements if set backend implements .abort"

Message ID 20231018111839.1702-1-pablo@netfilter.org
State Accepted, archived
Headers show
Series [nf] Revert "netfilter: nf_tables: do not remove elements if set backend implements .abort" | expand

Commit Message

Pablo Neira Ayuso Oct. 18, 2023, 11:18 a.m. UTC
Revert b311ecfb7ba0 ("netfilter: nf_tables: do not remove elements if
set backend implements .abort").

nf_tables_abort_release() path calls nft_set_elem_destroy() for
NFT_MSG_NEWSETELEM which releases the element, however, a reference to
the element still remains in the working copy.

Fixes: b311ecfb7ba0 ("netfilter: nf_tables: do not remove elements if set backend implements .abort").
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 net/netfilter/nf_tables_api.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index a623d31b6518..00b21b3ff318 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -10339,10 +10339,7 @@  static int __nf_tables_abort(struct net *net, enum nfnl_abort_action action)
 				break;
 			}
 			te = (struct nft_trans_elem *)trans->data;
-			if (!te->set->ops->abort ||
-			    nft_setelem_is_catchall(te->set, &te->elem))
-				nft_setelem_remove(net, te->set, &te->elem);
-
+			nft_setelem_remove(net, te->set, &te->elem);
 			if (!nft_setelem_is_catchall(te->set, &te->elem))
 				atomic_dec(&te->set->nelems);