This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.23-83-gf8e9c4d
- From: aurel32 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 9 Mar 2016 17:48:43 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.23-83-gf8e9c4d
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via f8e9c4d30c28b8815e65a391416e8b15d2e7cbb8 (commit)
from 613c92b3b59df6a06784cde1d4f410cef0b6da96 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f8e9c4d30c28b8815e65a391416e8b15d2e7cbb8
commit f8e9c4d30c28b8815e65a391416e8b15d2e7cbb8
Author: Aurelien Jarno <aurelien@aurel32.net>
Date: Wed Mar 9 00:25:00 2016 +0100
mips: terminate the FDE before the return trampoline in makecontext
In makecontext the FDE needs to be terminated before the return
trampoline otherwise backtrace called within a context created by
makecontext yields infinite backtrace.
This bug has been present for a long time, stdlib/tst-makecontext did
not fail until recent commit e535ce25. Tested on mips-linux-gnu and
mips64el-linux-gnuabi64 and mips-linux-gnu, no regression.
This fixes stdlib/tst-makecontext on MIPS.
Changelog:
[BZ #19792]
* sysdeps/unix/sysv/linux/mips/makecontext.S (__makecontext):
Terminate FDE before return label.
diff --git a/ChangeLog b/ChangeLog
index a6be762..727516e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-03-09 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #19792]
+ * sysdeps/unix/sysv/linux/mips/makecontext.S (__makecontext):
+ Terminate FDE before return label.
+
2016-03-09 Joseph Myers <joseph@codesourcery.com>
[BZ #19790]
diff --git a/sysdeps/unix/sysv/linux/mips/makecontext.S b/sysdeps/unix/sysv/linux/mips/makecontext.S
index 66600c7..3196554 100644
--- a/sysdeps/unix/sysv/linux/mips/makecontext.S
+++ b/sysdeps/unix/sysv/linux/mips/makecontext.S
@@ -153,6 +153,11 @@ NESTED (__makecontext, FRAMESZ, ra)
#endif
jr ra
+ /* We need to terminate the FDE to stop unwinding if backtrace was
+ called within a context created by makecontext. */
+ cfi_endproc
+ nop
+
99:
#ifdef __PIC__
move gp, s1
@@ -186,6 +191,8 @@ NESTED (__makecontext, FRAMESZ, ra)
1:
lb zero, (zero)
b 1b
+
+ cfi_startproc
PSEUDO_END (__makecontext)
weak_alias (__makecontext, makecontext)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
sysdeps/unix/sysv/linux/mips/makecontext.S | 7 +++++++
2 files changed, 13 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources