netfilter: nft_set_rbtree: fix overlap expiration walk
The lazy gc on insert that should remove timed-out entries fails to release the other half of the interval, if any. Can be reproduced with tests/shell/testcases/sets/0044interval_overlap_0 in nftables.git and kmemleak enabled kernel. Second bug is the use of rbe_prev vs. prev pointer. If rbe_prev() returns NULL after at least one iteration, rbe_prev points to element that is not an end interval, hence it should not be removed. Lastly, check the genmask of the end interval if this is active in the current generation. Fixes: c9e6978e ("netfilter: nft_set_rbtree: Switch to node list walk for overlap detection") Signed-off-by:Florian Westphal <fw@strlen.de>
parent
d4a7ce64
-
mentioned in commit 50cbb9d1
-
mentioned in commit acaee227
-
mentioned in commit 60c0c230
-
mentioned in commit 1296c110
-
mentioned in commit b734f7a4
-
mentioned in commit 6eb14441
-
mentioned in commit 4cee42fc
-
mentioned in commit 10e9cb39
-
mentioned in commit 8284a791
-
mentioned in commit c60d2529
Please register or sign in to comment