From 88e316b06414ee7c944cd6f8b30b07a972b78499 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Fri, 29 Oct 2021 14:53:55 +0530 Subject: 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 Reviewed-by: Florian Weimer Reviewed-by: Richard W.M. Jones --- malloc/malloc-debug.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'malloc/malloc-debug.c') 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); } -- cgit v1.2.3-70-g09d2