From b9324a1e7534131930b013a2b84c0c9a064065cc Mon Sep 17 00:00:00 2001 From: Paul Dagnelie Date: Fri, 23 May 2025 07:33:33 -0700 Subject: [PATCH] Fix off-by-one bug in range tree code Without this fix, zfs_range_tree_find_in could return an overlap when the found range starts immediately after the searched range, with no actual overlap. Sponsored-by: Klara, Inc. Sponsored-by: Wasabi Technology, Inc. Reviewed-by: Brian Behlendorf Reviewed-by: Alexander Motin Reviewed by: Igor Kozhukhov Signed-off-by: Paul Dagnelie Closes #17363 --- module/zfs/range_tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/zfs/range_tree.c b/module/zfs/range_tree.c index 5dd490a57..373636c69 100644 --- a/module/zfs/range_tree.c +++ b/module/zfs/range_tree.c @@ -659,7 +659,7 @@ zfs_range_tree_find_in(zfs_range_tree_t *rt, uint64_t start, uint64_t size, } rs = zfs_btree_next(&rt->rt_root, &where, &where); - if (rs == NULL || zfs_rs_get_start(rs, rt) > start + size) + if (rs == NULL || zfs_rs_get_start(rs, rt) >= start + size) return (B_FALSE); *ostart = zfs_rs_get_start(rs, rt);