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.13-73-ge451d22
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 7 Apr 2011 20:24:09 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.13-73-ge451d22
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 e451d22b22c959a4dbf86dbc9f125985601473ab (commit)
from 821ae7137b7b4dacdd7fcb73e4f3d479afed1014 (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=e451d22b22c959a4dbf86dbc9f125985601473ab
commit e451d22b22c959a4dbf86dbc9f125985601473ab
Author: Andreas Schwab <schwab@redhat.com>
Date: Thu Apr 7 16:23:52 2011 -0400
Maintain stack alignment in ____longjmp_chk on x86_64
diff --git a/ChangeLog b/ChangeLog
index fe86bc9..7f67fce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-04-07 Andreas Schwab <schwab@redhat.com>
+
+ * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S (CALL_FAIL):
+ Maintain aligned stack.
+ (CHECK_RSP): Remove unused macro.
+
2011-04-03 Ulrich Drepper <drepper@gmail.com>
* sysdeps/x86_64/cacheinfo.c (intel_02_known): Fix typo in table.
diff --git a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
index da35115..3881082 100644
--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001,2004,2005,2006,2009,2010 Free Software Foundation, Inc.
+/* Copyright (C) 2001,2004,2005,2006,2009,2010,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,19 +30,23 @@ longjmp_msg:
//#define __longjmp ____longjmp_chk
#ifdef PIC
-# define CALL_FAIL leaq longjmp_msg(%rip), %rdi; \
- call __GI___fortify_fail
+# define CALL_FAIL subq $8, %rsp; \
+ cfi_remember_state; \
+ cfi_def_cfa_offset(16); \
+ leaq longjmp_msg(%rip), %rdi; \
+ call __GI___fortify_fail; \
+ nop; \
+ cfi_restore_state
#else
-# define CALL_FAIL movq $longjmp_msg, %rdi; \
- call __fortify_fail
+# define CALL_FAIL subq $8, %rsp; \
+ cfi_remember_state; \
+ cfi_def_cfa_offset(16); \
+ movq $longjmp_msg, %rdi; \
+ call __fortify_fail; \
+ nop; \
+ cfi_restore_state
#endif
-#define CHECK_RSP(reg) \
- cmpq reg, %rsp; \
- jbe .Lok; \
- CALL_FAIL; \
-.Lok:
-
/* Jump to the position specified by ENV, causing the
setjmp call there to return VAL, or 1 if VAL is 0.
void __longjmp (__jmp_buf env, int val). */
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 +++++
sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S | 26 ++++++++++++---------
2 files changed, 21 insertions(+), 11 deletions(-)
hooks/post-receive
--
GNU C Library master sources