mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-25 00:59:45 -05:00
fix cleanup concurrency
This commit is contained in:
parent
58099cc045
commit
9b388e5328
1 changed files with 13 additions and 5 deletions
|
|
@ -636,13 +636,21 @@ retry:;
|
|||
|
||||
done:;
|
||||
rs->sr_err = rc;
|
||||
if ( rc != LDAP_SUCCESS && META_BACK_ONERR_STOP( mi ) ) {
|
||||
if ( rc != LDAP_SUCCESS ) {
|
||||
if ( dolock ) {
|
||||
ldap_pvt_thread_mutex_lock( &mi->mi_conninfo.lai_mutex );
|
||||
}
|
||||
LDAP_BACK_CONN_BINDING_CLEAR( msc );
|
||||
LDAP_BACK_CONN_TAINTED_SET( mc );
|
||||
meta_back_release_conn_lock( op, mc, dolock );
|
||||
*mcp = NULL;
|
||||
if ( META_BACK_ONERR_STOP( mi ) ) {
|
||||
LDAP_BACK_CONN_TAINTED_SET( mc );
|
||||
meta_back_release_conn_lock( op, mc, dolock );
|
||||
*mcp = NULL;
|
||||
}
|
||||
if ( dolock ) {
|
||||
ldap_pvt_thread_mutex_unlock( &mi->mi_conninfo.lai_mutex );
|
||||
}
|
||||
|
||||
if ( sendok & LDAP_BACK_SENDERR ) {
|
||||
if ( META_BACK_ONERR_STOP( mi ) && ( sendok & LDAP_BACK_SENDERR ) ) {
|
||||
send_ldap_result( op, rs );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue