From d01375b20042b0a9461a70ff5d4558a862dd1208 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Wed, 31 Jul 2002 23:43:56 +0000 Subject: [PATCH] Fix bdb_idl_union of range and list (related to ITS#1969 --- servers/slapd/back-bdb/idl.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/servers/slapd/back-bdb/idl.c b/servers/slapd/back-bdb/idl.c index 09f86a7ccf..28c9a725e6 100644 --- a/servers/slapd/back-bdb/idl.c +++ b/servers/slapd/back-bdb/idl.c @@ -1014,8 +1014,11 @@ bdb_idl_union( } if ( BDB_IDL_IS_RANGE( a ) || BDB_IDL_IS_RANGE(b) ) { -over: a[1] = IDL_MIN( BDB_IDL_FIRST(a), BDB_IDL_FIRST(b) ); - a[2] = IDL_MAX( BDB_IDL_LAST(a), BDB_IDL_LAST(b) ); +over: ida = IDL_MIN( BDB_IDL_FIRST(a), BDB_IDL_FIRST(b) ); + idb = IDL_MAX( BDB_IDL_LAST(a), BDB_IDL_LAST(b) ); + a[0] = NOID; + a[1] = ida; + a[2] = idb; return 0; } @@ -1028,7 +1031,6 @@ over: a[1] = IDL_MIN( BDB_IDL_FIRST(a), BDB_IDL_FIRST(b) ); while( ida != NOID || idb != NOID ) { if ( ida < idb ) { if( ++cursorc > BDB_IDL_UM_MAX ) { - a[0] = NOID; goto over; } b[cursorc] = ida; -- 2.39.5