diff --git a/include/haproxy/bug.h b/include/haproxy/bug.h index 54536ff86..a5c134196 100644 --- a/include/haproxy/bug.h +++ b/include/haproxy/bug.h @@ -221,6 +221,7 @@ enum tainted_flags { TAINTED_BUG = 0x00000020, /* a BUG_ON triggered */ TAINTED_SHARED_LIBS = 0x00000040, /* a shared library was loaded */ TAINTED_REDEFINITION = 0x00000080, /* symbol redefinition detected */ + TAINTED_REPLACED_MEM_ALLOCATOR = 0x00000100, /* memory allocator was replaced using LD_PRELOAD */ }; /* this is a bit field made of TAINTED_*, and is declared in haproxy.c */ diff --git a/include/haproxy/pool.h b/include/haproxy/pool.h index d034feaff..19ead2379 100644 --- a/include/haproxy/pool.h +++ b/include/haproxy/pool.h @@ -101,7 +101,6 @@ extern int mem_poison_byte; /* set of POOL_DBG_* flags */ extern uint pool_debugging; -int is_trim_enabled(void); int malloc_trim(size_t pad); void trim_all_pools(void); diff --git a/src/pool.c b/src/pool.c index 07b122a61..292b27d13 100644 --- a/src/pool.c +++ b/src/pool.c @@ -188,11 +188,6 @@ static void detect_allocator(void) _malloc_trim = get_sym_next_addr("malloc_trim"); } -int is_trim_enabled(void) -{ - return !disable_trim && using_default_allocator; -} - /* replace the libc's malloc_trim() so that we can also intercept the calls * from child libraries when the allocator is not the default one. */ @@ -1221,10 +1216,11 @@ INITCALL0(STG_PREPARE, init_pools); /* Report in build options if trim is supported */ static void pools_register_build_options(void) { - if (is_trim_enabled() && _malloc_trim) { + if (!using_default_allocator) { char *ptr = NULL; - memprintf(&ptr, "Support for malloc_trim() is enabled."); + memprintf(&ptr, "Running with a replaced memory allocator (e.g. via LD_PRELOAD)."); hap_register_build_opts(ptr, 1); + mark_tainted(TAINTED_REPLACED_MEM_ALLOCATOR); } } INITCALL0(STG_REGISTER, pools_register_build_options);