This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] m68k: fix clobbering a5 in setjmp() [BZ #24202]
- From: Sergei Trofimovich <slyfox at gentoo dot org>
- To: libc-alpha at sourceware dot org
- Cc: Andreas Schwab <schwab at suse dot de>, Sergei Trofimovich <slyfox at gentoo dot org>, James Le Cuirot <chewi at gentoo dot org>, Andreas Schwab <schwab at linux-m68k dot org>
- Date: Sun, 10 Feb 2019 23:29:10 +0000
- Subject: [PATCH] m68k: fix clobbering a5 in setjmp() [BZ #24202]
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