Patch "netfilter: nf_tables: revert do not remove elements if set backend implements .abort" has been added to the 6.5-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    netfilter: nf_tables: revert do not remove elements if set backend implements .abort

to the 6.5-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     netfilter-nf_tables-revert-do-not-remove-elements-if.patch
and it can be found in the queue-6.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 3538f84c2bad0acbf3bd5116110d8d96f8f78fe6
Author: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Date:   Wed Oct 18 13:18:39 2023 +0200

    netfilter: nf_tables: revert do not remove elements if set backend implements .abort
    
    [ Upstream commit f86fb94011aeb3b26337fc22204ca726aeb8bc24 ]
    
    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: ebd032fa8818 ("netfilter: nf_tables: do not remove elements if set backend implements .abort")
    Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
    Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 0d48d2e27a1ad..e43d9508e7a9c 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -10336,10 +10336,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);
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux