From: Howard Chu Date: Tue, 3 Feb 2015 10:13:55 +0000 (+0000) Subject: ITS#8039 more cleanup X-Git-Tag: OPENLDAP_REL_ENG_2_5_0ALPHA~141^2~107 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cb3952db4be9f731bc49923c1b14d0d4ca055891;p=thirdparty%2Fopenldap.git ITS#8039 more cleanup --- diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index 6db07854cd..3309e68fa1 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -771,6 +771,7 @@ again: static void free_resinfo( syncres *sr ) { syncres **st; + int freeit = 0; ldap_pvt_thread_mutex_lock( &sr->s_info->ri_mutex ); for (st = &sr->s_info->ri_list; *st; st = &(*st)->s_rilist) { if (*st == sr) { @@ -778,8 +779,10 @@ static void free_resinfo( syncres *sr ) break; } } + if ( !sr->s_info->ri_list ) + freeit = 1; ldap_pvt_thread_mutex_unlock( &sr->s_info->ri_mutex ); - if ( !sr->s_info->ri_list ) { + if ( freeit ) { ldap_pvt_thread_mutex_destroy( &sr->s_info->ri_mutex ); if ( sr->s_info->ri_e ) entry_free( sr->s_info->ri_e );