1999-12-05 Wolfram Gloger * malloc/malloc.c (arena_get2): If generating a new arena fails, try to generate a minimal one and hope for mmap_chunk() to succeed later. 1999-11-07 Wolfram Gloger * malloc/thread-m.h [NO_THREADS]: The mutex_* macros now let mutex_t work as an `in-use' flag even without threads. * malloc/malloc.c (USE_ARENAS): New feature flag, controls support for multiple arenas separately from NO_THREADS. (mALLOc, chunk_realloc, mEMALIGn, cALLOc) [USE_ARENAS]: try to fall back to an mmap()ed arena when sbrk() has failed. 1999-11-01 Wolfram Gloger * malloc/malloc.h: Describe __malloc_initialize_hook. * manual/memory.texi: Document __malloc_initialize_hook. 1999-09-23 Mark Kettenis * malloc/malloc.c (cALLOc): Correctly handle systems where sbrk doesn't clear the contents of memory that is reallocated after decrementing the break value first. Update comment about MORECORE_CLEARS, explaining the meaning of the values it can be set to. 1999-08-28 Ulrich Drepper * malloc/malloc.c (ptmalloc_init): Don't use variables to set thresholds for SUID binaries. [PR libc/1277] 1999-08-06 H.J. Lu * malloc/malloc.c: Initialize __libc_pagesize early. 1999-07-07 Ulrich Drepper * malloc/malloc.c (request2size): Also set errno if failing. * malloc/malloc.c (request2size): Take care of overflow in addition. 1999-07-04 Wolfram Gloger * malloc/malloc.c (request2size): Check for overflow and return NULL whenever it is encountered. 1999-06-06 Ulrich Drepper * malloc/malloc.c: Introduce local variable __libc_getpagesize to avoid multiple calls to getpagesize() which might be a syscall. 1999-06-05 Wolfram Gloger * malloc/malloc.c (check_action): Change into bitmap so that both diagnostic and abort can be requested by setting it to 3. (mALLOC_SET_STATe): Disable malloc checking if necessary. 1999-05-16 Wolfram Gloger * malloc/malloc.c: Cleanup to bring in line with released stand-alone version `ptmalloc'. Update some comments. (internal_function): Move fallback definition so that the source compiles outside of libc, and use it in more places. (malloc_atfork): Fix when malloc_check is in use. 1999-04-28 Ulrich Drepper * malloc/malloc.c (rEALLOc): Only free memory for size 0 if oldmem is != NULL. 1999-04-28 Andreas Jaeger * malloc/malloc.c (REALLOC_ZERO_BYTES_FREES): Define it to follow ISO C9x and Unix98. 1999-02-23 Andreas Schwab * malloc/malloc.c (mALLOC_SET_STATe): Handle the case where a non-checked heap is restored when malloc checking was requested by the user. (struct malloc_state): Add using_malloc_checking. (MALLOC_STATE_VERSION): Increment minor. (using_malloc_checking, disallow_malloc_check): New variables. (__malloc_check_init): Use them. (mALLOC_GET_STATe): Use mALLOc to allocate the malloc_state, so that it can the chunk is properly instrumented when malloc checking is enabled. Set the new using_malloc_checking field. 1998-08-28 09:22 Ulrich Drepper * malloc/malloc.c (malloc_hook_ini): Don't overwrite realloc and memalign hook. (realloc_hook_ini): Don't overwrite memalign hook. (memalign_hook_ini): Don't overwrite malloc and memalign hooks. Reported by Philippe Troin . 1998-11-04 Ulrich Drepper * malloc/malloc.c: Make sure calloc really returned zeroed memory. Patch by Wolfram Gloger . 1998-08-11 Roland McGrath * malloc/malloc.c (free_check, realloc_check): Don't cast to long for %p arg to fprintf, since `void *' is the right type already. 1998-08-11 H.J. Lu * malloc/malloc.c (free_check): Print pointer value using %p. (realloc_check): Likewise. 1998-05-12 Wolfram Gloger * malloc/malloc.c: Fix for NO_THREADS case. 1998-05-03 Wolfram Gloger * malloc/malloc.c [__linux__] (ptmalloc_unlock_all2): New function, used as atfork handler for the child process to work around a problem in LinuxThreads. 1998-03-31 Wolfram Gloger * malloc/malloc.c (chunk2mem_check, top_check): New functions. (malloc_check, free_check, realloc_check, memalign_check): Use them to improve overrun checking. Overruns of a single byte and corruption of the top chunk are now detected much more reliably. Tue Aug 12 17:17:00 1997 Wolfram Gloger * malloc/thread-m.h (thread_atfork, thread_atfork_static): New macros to encapsulate pthread_atfork's functionality. * malloc/malloc.c (ptmalloc_lock_all, ptmalloc_unlock_all): New functions, registered via thread_atfork in the initialization routine or via thread_atfork_static in global scope. This ensures a consistent state of all locks across fork(). Sun Apr 13 17:18:38 1997 Wolfram Gloger * malloc/malloc.c (fREe): Small optimization. Before returning, add fast check whether the heap containing top can go away. Fri Apr 11 16:46:49 1997 Wolfram Gloger * malloc/malloc.c (mALLOc, rEALLOc, cALLOc, mEMALIGn): When failing to allocate a new chunk, also try the main_arena. It may be that we are only running out of mmapped regions, and other arenas cannot be enlarged sufficiently. (new_heap, malloc_extend_top): Handle top_pad more consistently, i.e. only in new_heap(). Mon Feb 24 23:05:00 1997 Wolfram Gloger * malloc/malloc.c (malloc_get_state): New function. Saves global malloc state to an opaque data structure which is dynamically allocated in the heap. * malloc/malloc.c (malloc_set_state): New function. Restore previously obtained state. * malloc/malloc.h: Add declaration of malloc_get_state() and malloc_set_state(). Mon Feb 17 10:58:14 1997 Miles Bader * malloc/thread-m.h [_LIBC && !PTHREAD_MUTEX_INITIALIZER && MUTEX_INITIALIZER] (mutex_lock, mutex_unlock, mutex_trylock): Defined in terms of __mutex_*. (mutex_t): Type removed & replaced by new macro. (tsd_key_t): Typedef to int instead of pthread_key_t. (tsd_key_create, tsd_setspecific, tsd_getspecific): New macros. (__pthread_initialize): New macro, work around assumption of pthreads. (tsd_keys_alloced): New static variable. : New include. 1997-02-02 23:15 Ulrich Drepper * malloc/malloc.c (__after_morecore_hook): New variable. (malloc_extend_top): Call __after_morecore_hook if set. (main_trim): Likewise. * malloc/malloc.h: Add declaration of __after_morecore_hook. Suggested by Marcus Daniels. 1997-02-02 23:00 Marcus G. Daniels * malloc/malloc.c (rEALLOc): Protect tsd_setspecific call by #ifndef NO_THREADS. (mallinfo): Likewise. * malloc/malloc.c (__morecore): Make external since it is used in programs. 1997-01-30 18:29 Richard Henderson * malloc/malloc.c (MAGICBYTE): Use cast to size_t instead of unsigned to prevent warnings on 64 bit systems. Reported by Paul Wouters . 1997-01-27 13:28 Ulrich Drepper * malloc/malloc.h (__malloc_initialized) [_LIBC]: Define as __libc_malloc_initialized so that this variable is not shared with other users of GNU malloc. Suggested by Martin von Loewis . 1997-01-14 14:20 Andreas Schwab * malloc/malloc.c (weak_variable): Define. (__malloc_initialize_hook, __free_hook, __malloc_hook, __realloc_hook, __memalign_hook): Make them weak definitions. Sun Jan 26 18:35:29 1997 Wolfram Gloger * malloc/malloc.c: Change malloc_check_init() to __malloc_check_init(). Check for NULL in calloc() when a hook is in place. Make more variables tunable via MALLOC_... environment variables. * malloc/malloc.h: Change malloc_check_init() to __malloc_check_init(). Thu Jan 9 08:47:54 1997 Andreas Jaeger * new-malloc/malloc.c (__MALLOC_P): define call to pthread initializer only if NO_THREADS is not defined.