mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
netfilter: nf_tables: revert 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: ebd032fa88
("netfilter: nf_tables: do not remove elements if set backend implements .abort")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Florian Westphal <fw@strlen.de>
This commit is contained in:
parent
d111692a59
commit
f86fb94011
@ -10345,10 +10345,7 @@ static int __nf_tables_abort(struct net *net, enum nfnl_abort_action action)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
te = (struct nft_trans_elem *)trans->data;
|
te = (struct nft_trans_elem *)trans->data;
|
||||||
if (!te->set->ops->abort ||
|
nft_setelem_remove(net, te->set, &te->elem);
|
||||||
nft_setelem_is_catchall(te->set, &te->elem))
|
|
||||||
nft_setelem_remove(net, te->set, &te->elem);
|
|
||||||
|
|
||||||
if (!nft_setelem_is_catchall(te->set, &te->elem))
|
if (!nft_setelem_is_catchall(te->set, &te->elem))
|
||||||
atomic_dec(&te->set->nelems);
|
atomic_dec(&te->set->nelems);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user