]> git.sur5r.net Git - openldap/commitdiff
fixed some memory allocation nonsense
authorPierangelo Masarati <ando@openldap.org>
Sun, 29 Jul 2001 17:21:28 +0000 (17:21 +0000)
committerPierangelo Masarati <ando@openldap.org>
Sun, 29 Jul 2001 17:21:28 +0000 (17:21 +0000)
servers/slapd/limits.c

index 2b4829a31962a8b5df88215b6bfdec823ef21655..ef6ccc9da673c5364db60bdf523fe95e11ac9a20 100644 (file)
@@ -23,6 +23,10 @@ get_limits(
 {
        struct slap_limits **lm;
 
+       assert( be );
+       assert( timelimit );
+       assert( sizelimit );
+
        /*
         * default values
         */
@@ -106,16 +110,15 @@ add_limits(
        lm->lm_timelimit = timelimit;
        lm->lm_sizelimit = sizelimit;
 
-       if ( be->be_limits == NULL ) {
-               i = 1;
-               be->be_limits = ( struct slap_limits ** )ch_calloc( sizeof( struct slap_limits * ), 2 );
-       } else {
-               for ( i = 0; be->be_limits[i]; i++ );
-               
-               be->be_limits = ( struct slap_limits ** )ch_realloc( be->be_limits,
-                       sizeof( struct slap_limits * ) * ( i + 1 ) );
+       i = 0;
+       if ( be->be_limits != NULL ) {
+               for ( ; be->be_limits[i]; i++ );
        }
+
+       be->be_limits = ( struct slap_limits ** )ch_realloc( be->be_limits,
+                       sizeof( struct slap_limits * ) * ( i + 2 ) );
        be->be_limits[i] = lm;
+       be->be_limits[i+1] = NULL;
        
        return( 0 );
 }