[PATCH] m68k: fix clobbering a5 in setjmp() [BZ #24202]
Sergei Trofimovich
slyfox@gentoo.org
Sun Feb 10 23:29:00 GMT 2019
setjmp() uses C code to store current registers into jmp_buf
environment. -fstack-protector-all places canary into setjmp()
prologue and clobbers 'a5' before it gets saved.
The change inhibits stack canary injection to avoid clobber.
[BZ #24202]
* sysdeps/m68k/setjmp.c (*setjmp): Use
inhibit_stack_protector.
CC: James Le Cuirot <chewi@gentoo.org>
CC: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
---
ChangeLog | 6 ++++++
sysdeps/m68k/setjmp.c | 1 +
2 files changed, 7 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index c143073ca7..c1e8dd9c3a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-02-10 Sergei Trofimovich <slyfox@gentoo.org>
+
+ [BZ #24202]
+ * sysdeps/m68k/setjmp.c (*setjmp): Use
+ inhibit_stack_protector.
+
2019-02-06 Joseph Myers <joseph@codesourcery.com>
* elf/dl-load.h (_dl_postprocess_loadcmd): Use __always_inline
diff --git a/sysdeps/m68k/setjmp.c b/sysdeps/m68k/setjmp.c
index 39ab7178a0..62bd281119 100644
--- a/sysdeps/m68k/setjmp.c
+++ b/sysdeps/m68k/setjmp.c
@@ -19,6 +19,7 @@
/* Save the current program position in ENV and return 0. */
int
+inhibit_stack_protector
#if defined BSD_SETJMP
# undef setjmp
# define savemask 1
--
2.20.1
More information about the Libc-alpha
mailing list