This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]