From d054a81ab3a2515a45d28e6c26d2b190ff74e8ec Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Tue, 10 Jan 2017 16:35:58 +0530 Subject: tunables: Avoid getenv calls and disable glibc.malloc.check by default Builds with --enable-tunables failed on i686 because a call to getenv got snuck into tunables, which pulled in strncmp. This patch fixes this build failure by making the glibc.malloc.check check even simpler. The previous approach was convoluted where the tunable was disabled using an unsetenv and overwriting the tunable value with colons. The easier way is to simply mark the tunable as insecure by default (i.e. won't be read for AT_SECURE programs) and then enabled only when the /etc/suid-debug file is found. This also ends up removing a bunch of functions that were specially reimplemented (strlen, unsetenv) to avoid calling into string routines. Tested on x86_64 and i686. * elf/dl-tunables.c (tunables_unsetenv): Remove function. (min_strlen): Likewise. (disable_tunable): Likewise. (maybe_disable_malloc_check): Rename to maybe_enable_malloc_check. (maybe_enable_malloc_check): Enable glibc.malloc.check tunable if /etc/suid-debug file exists. (__tunables_init): Update caller. * elf/dl-tunables.list (glibc.malloc.check): Don't mark as secure. --- elf/dl-tunables.list | 1 - 1 file changed, 1 deletion(-) (limited to 'elf/dl-tunables.list') diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list index cbd1f4fb4a..d8cd912559 100644 --- a/elf/dl-tunables.list +++ b/elf/dl-tunables.list @@ -31,7 +31,6 @@ glibc { minval: 0 maxval: 3 env_alias: MALLOC_CHECK_ - is_secure: true } top_pad { type: SIZE_T -- cgit v1.2.3-65-gdbad