]> git.sur5r.net Git - openldap/commitdiff
ITS#8039 more cleanup
authorHoward Chu <hyc@openldap.org>
Tue, 3 Feb 2015 10:13:55 +0000 (10:13 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Fri, 6 Feb 2015 17:09:55 +0000 (11:09 -0600)
servers/slapd/overlays/syncprov.c

index 6db07854cd5ccfffcd0f7cdd168096357c3c0241..3309e68fa108f47190b4ffeaeabbf07a4dcdd23c 100644 (file)
@@ -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 );