mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-05 14:42:10 -05:00
Fix CONFIG_DELETE crash
Closing a connection can abandon its ops without going thru the threadpool, so make sure to lock the si_ops_mutex before walking the list.
This commit is contained in:
parent
a12bedc2d8
commit
6711876a35
1 changed files with 2 additions and 0 deletions
|
|
@ -3170,6 +3170,7 @@ syncprov_db_close(
|
|||
|
||||
#ifdef SLAP_CONFIG_DELETE
|
||||
if ( !slapd_shutdown ) {
|
||||
ldap_pvt_thread_mutex_lock( &si->si_ops_mutex );
|
||||
for ( so=si->si_ops, sonext=so; so; so=sonext ) {
|
||||
SlapReply rs = {REP_RESULT};
|
||||
rs.sr_err = LDAP_UNAVAILABLE;
|
||||
|
|
@ -3178,6 +3179,7 @@ syncprov_db_close(
|
|||
syncprov_drop_psearch( so, 0);
|
||||
}
|
||||
si->si_ops=NULL;
|
||||
ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex );
|
||||
}
|
||||
overlay_unregister_control( be, LDAP_CONTROL_SYNC );
|
||||
#endif /* SLAP_CONFIG_DELETE */
|
||||
|
|
|
|||
Loading…
Reference in a new issue