diff options
| author | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2021-10-29 14:53:55 +0530 |
|---|---|---|
| committer | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2021-10-29 14:56:53 +0530 |
| commit | 01bffc013cdad1e0c45db7aa57efb2bee61f3338 (patch) | |
| tree | dc29af554d5fbf5b5a24dc3d882f7dd7def55fb8 /malloc/malloc-debug.c | |
| parent | 024a7640ab9ecea80e527f4e4d7f7a1868e952c5 (diff) | |
| download | glibc-01bffc013cdad1e0c45db7aa57efb2bee61f3338.tar.xz glibc-01bffc013cdad1e0c45db7aa57efb2bee61f3338.zip | |
Handle NULL input to malloc_usable_size [BZ #28506]
Hoist the NULL check for malloc_usable_size into its entry points in
malloc-debug and malloc and assume non-NULL in all callees. This fixes
BZ #28506
Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit 88e316b06414ee7c944cd6f8b30b07a972b78499)
Diffstat (limited to 'malloc/malloc-debug.c')
| -rw-r--r-- | malloc/malloc-debug.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/malloc/malloc-debug.c b/malloc/malloc-debug.c index 9922ef5f25..3d7e6d44fd 100644 --- a/malloc/malloc-debug.c +++ b/malloc/malloc-debug.c @@ -1,5 +1,6 @@ /* Malloc debug DSO. Copyright (C) 2021 Free Software Foundation, Inc. + Copyright The GNU Toolchain Authors. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -399,17 +400,17 @@ strong_alias (__debug_calloc, calloc) size_t malloc_usable_size (void *mem) { + if (mem == NULL) + return 0; + if (__is_malloc_debug_enabled (MALLOC_MCHECK_HOOK)) return mcheck_usable_size (mem); if (__is_malloc_debug_enabled (MALLOC_CHECK_HOOK)) return malloc_check_get_size (mem); - if (mem != NULL) - { - mchunkptr p = mem2chunk (mem); - if (DUMPED_MAIN_ARENA_CHUNK (p)) - return chunksize (p) - SIZE_SZ; - } + mchunkptr p = mem2chunk (mem); + if (DUMPED_MAIN_ARENA_CHUNK (p)) + return chunksize (p) - SIZE_SZ; return musable (mem); } |
