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.14-203-g25ad0df


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  25ad0df13b48d9b7cf4db7190cec09d0393bd6d0 (commit)
      from  304c6e0b2c4d10a6cc2afdb42152aad1cf432c3a (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=25ad0df13b48d9b7cf4db7190cec09d0393bd6d0

commit 25ad0df13b48d9b7cf4db7190cec09d0393bd6d0
Author: David S. Miller <davem@davemloft.net>
Date:   Mon Aug 22 16:53:57 2011 -0700

    Bug fixes for ____longjmp_chk on sparc.

diff --git a/ChangeLog b/ChangeLog
index 60814a8..e83e46b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-08-22  David S. Miller  <davem@davemloft.net>
+
+	* sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S: Fix
+	sigaltstack check, add missing cfi directives.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S: Add
+	missing cfi directives, and sigaltstack handling.
+
 2011-08-16  Andreas Schwab  <schwab@redhat.com>
 
 	[BZ #11724]
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
index 0ecd7dd..bbb9eaa 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
@@ -41,10 +41,14 @@ ENTRY (____longjmp_chk)
 	 nop
 
 	save	%sp, -80, %sp
+	cfi_remember_state
+	cfi_def_cfa_register(%fp)
+	cfi_window_save
+	cfi_register(%o7, %i7)
 
 	clr	%o0
 	add	%sp, 64, %o1
-	set	__NR_sigaltstack, %g1
+	LOADSYSCALL(sigaltstack)
 	ta	0x10
 	bcs	.Lok
 	 ld	[%sp + 64 + 4], %o2
@@ -54,8 +58,8 @@ ENTRY (____longjmp_chk)
 
 	ld	[%sp + 64 + 8], %o1
 	add	%o0, %o1, %o0
-	sub	%o0, %g3, %o0
-	cmp	%o1, %o0
+	sub	%o0, %g5, %o0
+	cmp	%o0, %o1
 	bgeu	.Lok
 	 nop
 
@@ -76,6 +80,7 @@ ENTRY (____longjmp_chk)
 
 .Lok:
 	restore
+	cfi_restore_state
 
 .Lok_norestore:
 	ld	ENV(o0,JB_FP), %g3	/* Cache target FP in register %g3.  */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
index 9a4c8fe..836e62e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
@@ -40,8 +40,29 @@ ENTRY (____longjmp_chk)
 	bleu,pt	%xcc, .Lok
 	 nop
 
-	save	%sp, -128, %sp
+	save	%sp, -208, %sp
+	cfi_remember_state
+	cfi_def_cfa_register(%fp)
+	cfi_window_save
+	cfi_register(%o7, %i7)
+	add	%fp, 2023, %o1
+	clr	%o0
+	LOADSYSCALL(sigaltstack)
+	ta	0x6d
+	bcs,pn	%xcc, .Lok2
+	 lduw	[%fp + 2031], %l2
+	andcc	%l2, 0x1, %g0
+	be,pn	%xcc, .Lfail
+	 ldx	[%fp + 2023], %l0
+	ldx	[%fp + 2039], %l1
+	sub	%l0, STACK_BIAS, %l0
+	add	%l0, %l1, %l0
+	sub	%l0, %i2, %l0
+	cmp	%l0, %l1
+	bgeu,pt	%xcc, .Lok2
+	 nop
 
+.Lfail:
 #ifdef PIC
 1:	call	2f
 	sethi	%hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
@@ -56,7 +77,8 @@ ENTRY (____longjmp_chk)
 	call	HIDDEN_JUMPTARGET(__fortify_fail)
 	 nop
 
-	restore
+.Lok2:	restore
+	cfi_restore_state
 
 .Lok:
 	/* Modify the context with the value we want to return.  */

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |    7 +++++
 .../sysv/linux/sparc/sparc32/____longjmp_chk.S     |   11 ++++++--
 .../sysv/linux/sparc/sparc64/____longjmp_chk.S     |   26 ++++++++++++++++++-
 3 files changed, 39 insertions(+), 5 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]