From c4fd56006bc4ddc07017363dbfa448b982c49d19 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Mon, 18 Jul 2011 12:41:51 -0700 Subject: [PATCH] ITS#6985 fix sssvlv target offset, ordering match --- servers/slapd/overlays/sssvlv.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/servers/slapd/overlays/sssvlv.c b/servers/slapd/overlays/sssvlv.c index ce3da34f5b..aded94abcf 100644 --- a/servers/slapd/overlays/sssvlv.c +++ b/servers/slapd/overlays/sssvlv.c @@ -515,8 +515,10 @@ range_err: } cur_node = tavl_find3( so->so_tree, sn, node_cmp, &j ); /* didn't find >= match */ - if ( j > 0 ) - cur_node = NULL; + if ( j > 0 ) { + if ( cur_node ) + cur_node = tavl_next( cur_node, TAVL_DIR_RIGHT ); + } op->o_tmpfree( sn, op->o_tmpmemctx ); if ( !cur_node ) { @@ -534,7 +536,7 @@ range_err: } for (i=0; tmp_node != cur_node; tmp_node = tavl_next( tmp_node, dir ), i++); - so->so_vlv_target = i; + so->so_vlv_target = (dir == TAVL_DIR_RIGHT) ? i+1 : so->so_nentries - i; } if ( bv.bv_val != vc->vc_value.bv_val ) op->o_tmpfree( bv.bv_val, op->o_tmpmemctx ); -- 2.39.5