* malloc/malloc.c (public_cALLOc): We cannot skip the memory
authorUlrich Drepper <drepper@redhat.com>
Sun, 20 Mar 2005 18:09:53 +0000 (18:09 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 20 Mar 2005 18:09:53 +0000 (18:09 +0000)
clearing if perturb_byte != 0.

ChangeLog
malloc/malloc.c

index db2267f..492e147 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-03-20  Ulrich Drepper  <drepper@redhat.com>
+
+       * malloc/malloc.c (public_cALLOc): We cannot skip the memory
+       clearing if perturb_byte != 0.
+
 2005-03-20  Jakub Jelinek  <jakub@redhat.com>
 
        * posix/bits/unistd.h (pread) [__USE_FILE_OFFSET64]: Use __off64_t
index 44831bb..65be277 100644 (file)
@@ -1,4 +1,4 @@
-  /* Malloc implementation for multiple threads without lock contention.
+/* Malloc implementation for multiple threads without lock contention.
    Copyright (C) 1996-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Wolfram Gloger <wg@malloc.de>
@@ -3691,14 +3691,14 @@ public_cALLOc(size_t n, size_t elem_size)
 
   /* Two optional cases in which clearing not necessary */
 #if HAVE_MMAP
-  if (chunk_is_mmapped(p))
+  if (perturb_byte == 0 && chunk_is_mmapped(p))
     return mem;
 #endif
 
   csz = chunksize(p);
 
 #if MORECORE_CLEARS
-  if (p == oldtop && csz > oldtopsize) {
+  if (perturb_byte == 0 && (p == oldtop && csz > oldtopsize)) {
     /* clear only the bytes from non-freshly-sbrked memory */
     csz = oldtopsize;
   }