From: Howard Chu Date: Thu, 8 Jun 2006 19:35:42 +0000 (+0000) Subject: ITS#4583 use mutex around SSL_accept() X-Git-Tag: OPENLDAP_REL_ENG_2_4_3ALPHA~9^2~171 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=15853f1e74c471bc9bc7e607c7a89848e7b1c688;p=openldap ITS#4583 use mutex around SSL_accept() --- diff --git a/libraries/libldap/tls.c b/libraries/libldap/tls.c index 9dfbd73ef4..3d8333f64a 100644 --- a/libraries/libldap/tls.c +++ b/libraries/libldap/tls.c @@ -93,6 +93,7 @@ static void tls_locking_cb( int mode, int type, const char *file, int line ) */ static ldap_pvt_thread_mutex_t tls_def_ctx_mutex; +static ldap_pvt_thread_mutex_t tls_connect_mutex; static void tls_init_threads( void ) { @@ -105,6 +106,7 @@ static void tls_init_threads( void ) /* FIXME: the thread id should be added somehow... */ ldap_pvt_thread_mutex_init( &tls_def_ctx_mutex ); + ldap_pvt_thread_mutex_init( &tls_connect_mutex ); } #endif /* LDAP_R_COMPILE */ @@ -862,7 +864,13 @@ ldap_pvt_tls_accept( Sockbuf *sb, void *ctx_arg ) LBER_SBIOD_LEVEL_TRANSPORT, (void *)ssl ); } +#ifdef LDAP_R_COMPILE + ldap_pvt_thread_mutex_lock( &tls_connect_mutex ); +#endif err = SSL_accept( ssl ); +#ifdef LDAP_R_COMPILE + ldap_pvt_thread_mutex_unlock( &tls_connect_mutex ); +#endif #ifdef HAVE_WINSOCK errno = WSAGetLastError();