Don't shortcut scope base searches. Base scope searches can be

useful to ensure target entry exists.
This commit is contained in:
Kurt Zeilenga 2004-05-30 22:15:39 +00:00
parent 9d87b68ba6
commit 2ec6755eda

View File

@ -893,9 +893,7 @@ int slap_sasl_match( Operation *opx, struct berval *rule,
&op.ors_filterstr ); &op.ors_filterstr );
if( rc != LDAP_SUCCESS ) goto CONCLUDED; if( rc != LDAP_SUCCESS ) goto CONCLUDED;
/* Massive shortcut: search scope == base */
switch ( op.oq_search.rs_scope ) { switch ( op.oq_search.rs_scope ) {
case LDAP_SCOPE_BASE:
case LDAP_X_SCOPE_EXACT: case LDAP_X_SCOPE_EXACT:
exact_match: exact_match:
if ( dn_match( &op.o_req_ndn, assertDN ) ) { if ( dn_match( &op.o_req_ndn, assertDN ) ) {
@ -1177,9 +1175,7 @@ void slap_sasl2dn( Operation *opx,
/* Must do an internal search */ /* Must do an internal search */
op.o_bd = select_backend( &op.o_req_ndn, 0, 1 ); op.o_bd = select_backend( &op.o_req_ndn, 0, 1 );
/* Massive shortcut: search scope == base */
switch ( op.oq_search.rs_scope ) { switch ( op.oq_search.rs_scope ) {
case LDAP_SCOPE_BASE:
case LDAP_X_SCOPE_EXACT: case LDAP_X_SCOPE_EXACT:
*sasldn = op.o_req_ndn; *sasldn = op.o_req_ndn;
BER_BVZERO( &op.o_req_ndn ); BER_BVZERO( &op.o_req_ndn );
@ -1193,6 +1189,7 @@ void slap_sasl2dn( Operation *opx,
/* correctly parsed, but illegal */ /* correctly parsed, but illegal */
goto FINISHED; goto FINISHED;
case LDAP_SCOPE_BASE:
case LDAP_SCOPE_ONELEVEL: case LDAP_SCOPE_ONELEVEL:
case LDAP_SCOPE_SUBTREE: case LDAP_SCOPE_SUBTREE:
#ifdef LDAP_SCOPE_SUBORDINATE #ifdef LDAP_SCOPE_SUBORDINATE