From: Howard Chu Date: Wed, 27 Apr 2005 21:26:05 +0000 (+0000) Subject: Import ITS#3688 fix from HEAD X-Git-Tag: OPENLDAP_REL_ENG_2_2_26~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=044598d751cab0ef7334621defd54ee862fc66cf;p=thirdparty%2Fopenldap.git Import ITS#3688 fix from HEAD --- diff --git a/servers/slapd/back-bdb/dn2id.c b/servers/slapd/back-bdb/dn2id.c index 312c10e22b..f8ebb1a7d6 100644 --- a/servers/slapd/back-bdb/dn2id.c +++ b/servers/slapd/back-bdb/dn2id.c @@ -1133,7 +1133,7 @@ hdb_dn2idl( DBTzero(&cx.data); hdb_dn2idl_internal(&cx); - if ( !BDB_IDL_IS_ZERO( ids )) + if ( !BDB_IDL_IS_ZERO( ids ) && !BDB_IDL_IS_RANGE( ids )) bdb_idl_sort( ids ); return cx.rc; diff --git a/servers/slapd/back-bdb/idl.c b/servers/slapd/back-bdb/idl.c index c3018ebac8..c892e80e30 100644 --- a/servers/slapd/back-bdb/idl.c +++ b/servers/slapd/back-bdb/idl.c @@ -1264,7 +1264,7 @@ int bdb_idl_append_one( ID *ids, ID id ) } } ids[0]++; - if ( ids[0] >= BDB_IDL_DB_MAX ) { + if ( ids[0] >= BDB_IDL_UM_MAX ) { ids[0] = NOID; } else { ids[ids[0]] = id; @@ -1351,6 +1351,9 @@ bdb_idl_sort( ID *ids ) int i; ID temp; + if ( BDB_IDL_IS_RANGE( ids )) + return; + for (i = ids[0] / 2; i >= 1; i--) siftDown(ids, i, ids[0]);