]> 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:01:43 +0000 (11:01 -0600)
servers/slapd/overlays/syncprov.c

index 5c4973b2a366ae9a3562316c54d1a75b28bb9d0d..bd191c63a4d470d8ebcb80c48bff7381ca892fe5 100644 (file)
@@ -773,6 +773,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) {
@@ -780,8 +781,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 );