From 72141795d4edd17f88da192447395a48444afa10 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Thu, 19 Apr 2018 20:56:26 -0400 Subject: return chunks split off by memalign using __bin_chunk instead of free this change serves multiple purposes: 1. it ensures that static linking of memalign-family functions will pull in the system malloc implementation, thereby causing link errors if an attempt is made to link the system memalign functions with a replacement malloc (incomplete allocator replacement). 2. it eliminates calls to free that are unpaired with allocations, which are confusing when setting breakpoints or tracing execution. as a bonus, making __bin_chunk external may discourage aggressive and unnecessary inlining of it. --- src/internal/malloc_impl.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/internal/malloc_impl.h') diff --git a/src/internal/malloc_impl.h b/src/internal/malloc_impl.h index 1ea0407c..4c4a4b46 100644 --- a/src/internal/malloc_impl.h +++ b/src/internal/malloc_impl.h @@ -36,4 +36,7 @@ struct bin { #define IS_MMAPPED(c) !((c)->csize & (C_INUSE)) +__attribute__((__visibility__("hidden"))) +void __bin_chunk(struct chunk *); + #endif -- cgit v1.2.1