mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-27 03:20:22 +08:00
Fix dangling lock (coverity)
This commit is contained in:
parent
08f5aca7db
commit
7d483f7aba
@ -100,6 +100,9 @@ rewrite_session_init(
|
||||
|
||||
session = calloc( sizeof( struct rewrite_session ), 1 );
|
||||
if ( session == NULL ) {
|
||||
#ifdef USE_REWRITE_LDAP_PVT_THREADS
|
||||
ldap_pvt_thread_rdwr_wunlock( &info->li_cookies_mutex );
|
||||
#endif /* USE_REWRITE_LDAP_PVT_THREADS */
|
||||
return NULL;
|
||||
}
|
||||
session->ls_cookie = ( void * )cookie;
|
||||
@ -108,11 +111,13 @@ rewrite_session_init(
|
||||
#ifdef USE_REWRITE_LDAP_PVT_THREADS
|
||||
if ( ldap_pvt_thread_mutex_init( &session->ls_mutex ) ) {
|
||||
free( session );
|
||||
ldap_pvt_thread_rdwr_wunlock( &info->li_cookies_mutex );
|
||||
return NULL;
|
||||
}
|
||||
if ( ldap_pvt_thread_rdwr_init( &session->ls_vars_mutex ) ) {
|
||||
ldap_pvt_thread_mutex_destroy( &session->ls_mutex );
|
||||
free( session );
|
||||
ldap_pvt_thread_rdwr_wunlock( &info->li_cookies_mutex );
|
||||
return NULL;
|
||||
}
|
||||
#endif /* USE_REWRITE_LDAP_PVT_THREADS */
|
||||
@ -122,7 +127,7 @@ rewrite_session_init(
|
||||
info->li_num_cookies++;
|
||||
|
||||
#ifdef USE_REWRITE_LDAP_PVT_THREADS
|
||||
ldap_pvt_thread_rdwr_wunlock( &info->li_cookies_mutex );
|
||||
ldap_pvt_thread_rdwr_wunlock( &info->li_cookies_mutex );
|
||||
#endif /* USE_REWRITE_LDAP_PVT_THREADS */
|
||||
|
||||
if ( rc != 0 ) {
|
||||
|
@ -335,7 +335,11 @@ rewrite_xmap_apply(
|
||||
&& ( p = strtok( NULL, "" ) ) ) {
|
||||
val->bv_val = strdup( p );
|
||||
if ( val->bv_val == NULL ) {
|
||||
return REWRITE_ERR;
|
||||
#ifdef USE_REWRITE_LDAP_PVT_THREADS
|
||||
ldap_pvt_thread_mutex_unlock( &map->lm_mutex );
|
||||
#endif /* USE_REWRITE_LDAP_PVT_THREADS */
|
||||
rc = REWRITE_ERR;
|
||||
goto rc_return;
|
||||
}
|
||||
|
||||
val->bv_len = strlen( p );
|
||||
|
Loading…
Reference in New Issue
Block a user