about summary refs log tree commit diff
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.ibm.com>2021-12-16 12:47:11 +0100
committerStefan Liebler <stli@linux.ibm.com>2021-12-16 15:19:28 +0100
commitff3cb03f38f851bbb066206573dc68914920be0a (patch)
treec2094e12eeb10e1ea7f5e3a833368ef0c3eedc4c
parentae23fa3e5fe24daf94fc7f8e5268bb8ceeda7477 (diff)
downloadglibc-ff3cb03f38f851bbb066206573dc68914920be0a.tar.gz
glibc-ff3cb03f38f851bbb066206573dc68914920be0a.tar.xz
glibc-ff3cb03f38f851bbb066206573dc68914920be0a.zip
Fix __minimal_malloc segfaults in __mmap due to stack-protector
Starting with commit b05fae4d8e34604a72ee36d2d3164391b76fcf0b
"elf: Use the minimal malloc on tunables_strdup",
I get lots of segfaults in static tests on s390x when also using, e.g.:
export GLIBC_TUNABLES="glibc.elision.enable=1"

tunables_strdup callls __minimal_malloc which tries to call __mmap
due to insufficient space left. __mmap itself first setups a new
stack frame and segfaults when copying the stack-protector canary
from thread-pointer. The latter one is not yet setup.

Thus this patch also turns off stack-protection for mmap.
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
-rw-r--r--misc/Makefile4
1 files changed, 4 insertions, 0 deletions
diff --git a/misc/Makefile b/misc/Makefile
index 3b66cb9f6a..db40312ba9 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -149,6 +149,10 @@ CFLAGS-sbrk.o = $(no-stack-protector)
 CFLAGS-sbrk.op = $(no-stack-protector)
 CFLAGS-brk.o = $(no-stack-protector)
 CFLAGS-brk.op = $(no-stack-protector)
+CFLAGS-mmap.o = $(no-stack-protector)
+CFLAGS-mmap.op = $(no-stack-protector)
+CFLAGS-mmap64.o = $(no-stack-protector)
+CFLAGS-mmap64.op = $(no-stack-protector)
 
 include ../Rules