]> git.sur5r.net Git - openldap/commitdiff
partial fulfilment of ITS#1710
authorPierangelo Masarati <ando@openldap.org>
Tue, 2 Apr 2002 12:27:06 +0000 (12:27 +0000)
committerPierangelo Masarati <ando@openldap.org>
Tue, 2 Apr 2002 12:27:06 +0000 (12:27 +0000)
servers/slapd/back-monitor/cache.c
servers/slapd/back-monitor/conn.c

index b00b55ed0413cd942f82442251a3f5dec94c3894..9fc8c941f8a4ae1bf1995d473cde6840614b2fa8 100644 (file)
@@ -257,6 +257,7 @@ monitor_cache_release(
                ldap_pvt_thread_mutex_unlock( &mi->mi_cache_mutex );
                ch_free( mc );
                
+               ldap_pvt_thread_mutex_unlock( &mp->mp_mutex );
                ldap_pvt_thread_mutex_destroy( &mp->mp_mutex );
                ch_free( mp );
                e->e_private = NULL;
index 4d91d693842ad6a9c3789b229b6e43225af7f702..9ea0a66be81aa52f6974443054cb8ad15f6cbeba 100644 (file)
@@ -369,6 +369,16 @@ monitor_subsys_conn_create(
                                c = connection_next( c, &connindex )) {
                        if ( conn_create( c, &e ) || e == NULL ) {
                                connection_done(c);
+                               for ( ; e_tmp != NULL; ) {
+                                       mp = ( struct monitorentrypriv * )e_tmp->e_private;
+                                       e = mp->mp_next;
+
+                                       ch_free( mp );
+                                       e_tmp->e_private = NULL;
+                                       entry_free( e_tmp );
+
+                                       e_tmp = e;
+                               }
                                return( -1 );
                        }
                        mp = ( struct monitorentrypriv * )e->e_private;