X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-bdb%2Fsearch.c;h=d30d7b9f2e7b5ba1095bb67ddf756fb838ae8788;hb=8ab758c9cc4aea3ff1d8d1eb0a465c45b8fa6cd3;hp=89b347f595a94ca0a9709fca7b1d021831d7c7bf;hpb=3743a5a68e4d608949d5fd04904733ee5c1ac959;p=openldap diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c index 89b347f595..d30d7b9f2e 100644 --- a/servers/slapd/back-bdb/search.c +++ b/servers/slapd/back-bdb/search.c @@ -184,7 +184,7 @@ static int search_aliases( BDB_IDL_ZERO( aliases ); rs->sr_err = bdb_filter_candidates( op, txn, &af, aliases, curscop, visited ); - if (rs->sr_err != LDAP_SUCCESS) { + if (rs->sr_err != LDAP_SUCCESS || BDB_IDL_IS_ZERO( aliases )) { return rs->sr_err; } oldsubs[0] = 1; @@ -1253,6 +1253,8 @@ static int search_candidates( if( op->ors_deref & LDAP_DEREF_SEARCHING ) { rc = search_aliases( op, rs, e, txn, ids, scopes, stack ); + if ( BDB_IDL_IS_ZERO( ids ) && rc == LDAP_SUCCESS ) + rc = bdb_dn2idl( op, txn, &e->e_nname, BEI(e), ids, stack ); } else { rc = bdb_dn2idl( op, txn, &e->e_nname, BEI(e), ids, stack ); }