From: Howard Chu Date: Wed, 14 May 2003 19:53:28 +0000 (+0000) Subject: Import ITS#2506, ITS#2507 fix from HEAD X-Git-Tag: OPENLDAP_REL_ENG_2_1_20~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19cb5e529e48d4c7e65697714967e52e38255dcf;p=thirdparty%2Fopenldap.git Import ITS#2506, ITS#2507 fix from HEAD --- diff --git a/servers/slapd/back-bdb/filterindex.c b/servers/slapd/back-bdb/filterindex.c index bcfc898f28..ca48a456eb 100644 --- a/servers/slapd/back-bdb/filterindex.c +++ b/servers/slapd/back-bdb/filterindex.c @@ -60,6 +60,11 @@ bdb_filter_candidates( switch ( f->f_choice ) { case SLAPD_FILTER_COMPUTED: switch( f->f_result ) { + case SLAPD_COMPARE_UNDEFINED: + /* This technically is not the same as FALSE, but it + * certainly will produce no matches. + */ + /* FALLTHRU */ case LDAP_COMPARE_FALSE: BDB_IDL_ZERO( ids ); break; @@ -67,8 +72,6 @@ bdb_filter_candidates( struct bdb_info *bdb = (struct bdb_info *) be->be_private; BDB_IDL_ALL( bdb, ids ); } break; - case SLAPD_COMPARE_UNDEFINED: - break; } break; @@ -325,7 +328,7 @@ presence_candidates( "returned=%d\n", desc->ad_cname.bv_val, rc, 0 ); #endif - return 0; + return rc; } if( db == NULL ) { @@ -339,7 +342,7 @@ presence_candidates( "<= bdb_presence_candidates: (%s) not indexed\n", desc->ad_cname.bv_val, 0, 0 ); #endif - return 0; + return -1; } if( prefix.bv_val == NULL ) { @@ -352,7 +355,7 @@ presence_candidates( "<= bdb_presence_candidates: (%s) no prefix\n", desc->ad_cname.bv_val, 0, 0 ); #endif - return 0; + return -1; } rc = bdb_key_read( be, db, NULL, &prefix, ids ); @@ -488,7 +491,7 @@ equality_candidates( "<= bdb_equality_candidates: (%s) no keys\n", ava->aa_desc->ad_cname.bv_val, 0, 0 ); #endif - return 0; + return -1; } for ( i= 0; keys[i].bv_val != NULL; i++ ) { @@ -657,7 +660,7 @@ approx_candidates( "<= bdb_approx_candidates: (%s) no keys (%s)\n", prefix.bv_val, ava->aa_desc->ad_cname.bv_val, 0 ); #endif - return 0; + return -1; } for ( i= 0; keys[i].bv_val != NULL; i++ ) { @@ -820,7 +823,7 @@ substring_candidates( "<= bdb_substring_candidates: (0x%04lx) no keys (%s)\n", mask, sub->sa_desc->ad_cname.bv_val, 0 ); #endif - return 0; + return -1; } for ( i= 0; keys[i].bv_val != NULL; i++ ) { @@ -882,6 +885,6 @@ substring_candidates( (long) BDB_IDL_FIRST(ids), (long) BDB_IDL_LAST(ids) ); #endif - return( 0 ); + return( rc ); }