OpenLDAP 2.3.36 Engineering
Fixed slapd error code on Windows (ITS#4945, #4606)
Fixed slapd mutex bug after failed startup (ITS#4957)
- Fixed slapd-config olcModuleLoad replace (ITS#4921)
Fixed slapd-bdb no-op crasher (ITS#4925)
+ Fixed slapd-config olcModuleLoad replace (ITS#4921)
+ Fixed slapd-relay crash when no database can be selected (ITS#4958)
Fixed slapo-chain RFC3062 passwd exop handling (ITS#4964)
Fixed libldap response code handling on rebind (ITS#4924)
Fixed libldap SASL_MAX_BUFF_SIZE (ITS#4935)
relay_back_info *ri = (relay_back_info *)op->o_bd->be_private;
BackendDB *bd = ri->ri_bd;
- if ( bd == NULL ) {
+ if ( bd == NULL && !BER_BVISNULL( &op->o_req_ndn ) ) {
bd = select_backend( &op->o_req_ndn, 0, 1 );
if ( bd == op->o_bd ) {
if ( err > LDAP_SUCCESS ) {
BackendDB *bd;
int rc = 1;
- bd = ri->ri_bd;
+ bd = relay_back_select_backend( op, rs, -1 );
if ( bd == NULL ) {
- bd = select_backend( &op->o_req_ndn, 0, 1 );
+ return rc;
}
if ( bd && bd->be_unbind ) {
BackendDB *bd;
int rc = 1;
- bd = relay_back_select_backend( op, rs, LDAP_NO_SUCH_OBJECT );
+ bd = relay_back_select_backend( op, rs, LDAP_CANNOT_CANCEL );
if ( bd == NULL ) {
return 1;
}