netfilter: nft_set_rbtree: overlap detection with element re-addition after deletion
[ Upstream commitbabc3dc952
] This patch fixes spurious EEXIST errors. Extendd2df92e98a
("netfilter: nft_set_rbtree: handle element re-addition after deletion") to deal with elements with same end flags in the same transation. Reset the overlap flag as described by7c84d41416
("netfilter: nft_set_rbtree: Detect partial overlaps on insertion"). Fixes:7c84d41416
("netfilter: nft_set_rbtree: Detect partial overlaps on insertion") Fixes:d2df92e98a
("netfilter: nft_set_rbtree: handle element re-addition after deletion") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Reviewed-by: Stefano Brivio <sbrivio@redhat.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
9cc897ca03
Коммит
c2a69ac00b
|
@ -349,7 +349,11 @@ static int __nft_rbtree_insert(const struct net *net, const struct nft_set *set,
|
|||
*ext = &rbe->ext;
|
||||
return -EEXIST;
|
||||
} else {
|
||||
p = &parent->rb_left;
|
||||
overlap = false;
|
||||
if (nft_rbtree_interval_end(rbe))
|
||||
p = &parent->rb_left;
|
||||
else
|
||||
p = &parent->rb_right;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче