]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/sl_malloc.c
fix ITS#3753
[openldap] / servers / slapd / sl_malloc.c
index aa143ed070372973d1cb5310bdda87ed9e654f70..d065c57ec9166a3cb99da6699810de0eb4136513 100644 (file)
@@ -376,6 +376,10 @@ slap_sl_realloc(void *ptr, ber_len_t size, void *ctx)
        }
 
        if (sh->sh_stack) {
+               /* round up to doubleword boundary */
+               size += pad + sizeof( ber_len_t );
+               size &= ~pad;
+
                /* Never shrink blocks */
                if (size <= p[-1]) {
                        new = p;
@@ -552,6 +556,8 @@ slap_sl_context( void *ptr )
        struct slab_heap *sh = NULL;
        void *ctx;
 
+       if ( slapMode & SLAP_TOOL_MODE ) return NULL;
+
 #ifdef NO_THREADS
        sh = slheap;
 #else