diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | malloc/malloc.c | 2 | ||||
-rw-r--r-- | malloc/mcheck.c | 2 |
3 files changed, 5 insertions, 2 deletions
@@ -1,5 +1,8 @@ 2007-05-18 Ulrich Drepper <drepper@redhat.com> + * malloc/malloc.c (do_check_chunk): Correct check for mmaped block + not overlapping with arena. + * malloc/mcheck.c (reallochook): If size==0, free the block. * rt/tst-shm.c: Use fstat64 instead of fstat. diff --git a/malloc/malloc.c b/malloc/malloc.c index e061db9..d37d920 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -2572,7 +2572,7 @@ static void do_check_chunk(av, p) mstate av; mchunkptr p; #if HAVE_MMAP /* address is outside main heap */ if (contiguous(av) && av->top != initial_top(av)) { - assert(((char*)p) < min_address || ((char*)p) > max_address); + assert(((char*)p) < min_address || ((char*)p) >= max_address); } /* chunk is page-aligned */ assert(((p->prev_size + sz) & (mp_.pagesize-1)) == 0); diff --git a/malloc/mcheck.c b/malloc/mcheck.c index 4e0d4b5..524acc7 100644 --- a/malloc/mcheck.c +++ b/malloc/mcheck.c @@ -267,7 +267,7 @@ reallochook (__ptr_t ptr, __malloc_size_t size, const __ptr_t caller) if (size == 0) { freehook (ptr, caller); - return; + return NULL; } struct hdr *hdr; |