mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Return requested size for malloc_usable_size when MALLOC_CHECK_ > 0
[BZ #1349] malloc_usable_size returns the usable size in an allocated chunk, which may be >= the requested size. In the case of MALLOC_CHECK_ being exported to > 0 however, only the requested size is usable, since a magic value is written at the end of the request size to trap writes beyond request bounds. Hence, when MALLOC_CHECK_ is exported to > 0, malloc_usable_size() should return the request size.
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/* Malloc implementation for multiple threads without lock contention.
|
||||
Copyright (C) 1996-2009, 2010, 2011, 2012 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996-2012 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Wolfram Gloger <wg@malloc.de>
|
||||
and Doug Lea <dl@cs.oswego.edu>, 2001.
|
||||
@ -4563,6 +4563,9 @@ musable(void* mem)
|
||||
mchunkptr p;
|
||||
if (mem != 0) {
|
||||
p = mem2chunk(mem);
|
||||
|
||||
if (__builtin_expect(using_malloc_checking == 1, 0))
|
||||
return malloc_check_get_size(p);
|
||||
if (chunk_is_mmapped(p))
|
||||
return chunksize(p) - 2*SIZE_SZ;
|
||||
else if (inuse(p))
|
||||
|
Reference in New Issue
Block a user