mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
fix cleanup concurrency
This commit is contained in:
parent
58099cc045
commit
9b388e5328
@ -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 New Issue
Block a user