aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2016-06-20 18:12:15 -0400
committerPablo Neira Ayuso <pablo@netfilter.org>2016-06-24 05:03:26 -0400
commit4e5001651f5e488eac378ebabc5bde2a8f1ea861 (patch)
tree129316ac4883cfe54d9331a41e093910f5f6c6d3
parent37a9cc52552579f22e18cca401cfc4351b6cbc72 (diff)
netfilter: nft_rbtree: check for next generation when deactivating elements
set->ops->deactivate() is invoked from nft_del_setelem() that happens from the transaction path, so we have to check if the object is active in the next generation, not the current. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--net/netfilter/nft_rbtree.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netfilter/nft_rbtree.c b/net/netfilter/nft_rbtree.c
index f762094af7c1..86fbe5e68d28 100644
--- a/net/netfilter/nft_rbtree.c
+++ b/net/netfilter/nft_rbtree.c
@@ -170,7 +170,7 @@ static void *nft_rbtree_deactivate(const struct nft_set *set,
170 const struct nft_rbtree *priv = nft_set_priv(set); 170 const struct nft_rbtree *priv = nft_set_priv(set);
171 const struct rb_node *parent = priv->root.rb_node; 171 const struct rb_node *parent = priv->root.rb_node;
172 struct nft_rbtree_elem *rbe, *this = elem->priv; 172 struct nft_rbtree_elem *rbe, *this = elem->priv;
173 u8 genmask = nft_genmask_cur(read_pnet(&set->pnet)); 173 u8 genmask = nft_genmask_next(read_pnet(&set->pnet));
174 int d; 174 int d;
175 175
176 while (parent != NULL) { 176 while (parent != NULL) {