mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-12 10:54:48 +08:00
ITS#4108 fix another accept/read race condition
This commit is contained in:
parent
67397c46be
commit
e131aa424b
@ -751,6 +751,7 @@ long connection_init(
|
|||||||
slap_sasl_open( c, 0 );
|
slap_sasl_open( c, 0 );
|
||||||
slap_sasl_external( c, ssf, authid );
|
slap_sasl_external( c, ssf, authid );
|
||||||
|
|
||||||
|
slapd_add_internal( s, 1 );
|
||||||
ldap_pvt_thread_mutex_unlock( &c->c_mutex );
|
ldap_pvt_thread_mutex_unlock( &c->c_mutex );
|
||||||
ldap_pvt_thread_mutex_unlock( MCA_GET_CONN_MUTEX(s) );
|
ldap_pvt_thread_mutex_unlock( MCA_GET_CONN_MUTEX(s) );
|
||||||
|
|
||||||
@ -1393,13 +1394,13 @@ void connection_client_stop(
|
|||||||
c->c_close_reason = "?"; /* should never be needed */
|
c->c_close_reason = "?"; /* should never be needed */
|
||||||
slapd_sd_lock();
|
slapd_sd_lock();
|
||||||
ber_sockbuf_free( c->c_sb );
|
ber_sockbuf_free( c->c_sb );
|
||||||
|
slapd_remove( s, 0, 1, 1 );
|
||||||
c->c_sb = ber_sockbuf_alloc( );
|
c->c_sb = ber_sockbuf_alloc( );
|
||||||
{
|
{
|
||||||
ber_len_t max = sockbuf_max_incoming;
|
ber_len_t max = sockbuf_max_incoming;
|
||||||
ber_sockbuf_ctrl( c->c_sb, LBER_SB_OPT_SET_MAX_INCOMING, &max );
|
ber_sockbuf_ctrl( c->c_sb, LBER_SB_OPT_SET_MAX_INCOMING, &max );
|
||||||
}
|
}
|
||||||
|
|
||||||
slapd_remove( s, 0, 1, 1 );
|
|
||||||
connection_return( c );
|
connection_return( c );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1447,7 +1448,7 @@ int connection_read_activate( ber_socket_t s )
|
|||||||
|
|
||||||
if( rc != 0 ) {
|
if( rc != 0 ) {
|
||||||
Debug( LDAP_DEBUG_ANY,
|
Debug( LDAP_DEBUG_ANY,
|
||||||
"connection_read_activiate(%d): submit failed (%d)\n",
|
"connection_read_activate(%d): submit failed (%d)\n",
|
||||||
s, rc, 0 );
|
s, rc, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1516,7 +1516,6 @@ slap_listener(
|
|||||||
id, (long) s, peername, sl->sl_name.bv_val,
|
id, (long) s, peername, sl->sl_name.bv_val,
|
||||||
0 );
|
0 );
|
||||||
|
|
||||||
slapd_add( s, 1, NULL );
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user