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.20-373-g3eb5d2f
- From: roland at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 16 Dec 2014 23:59:13 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.20-373-g3eb5d2f
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 3eb5d2fc71c973b95c9678b0644c26c615668218 (commit)
from f0481d971e9941004814009c1b0877a43aa10bdb (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=3eb5d2fc71c973b95c9678b0644c26c615668218
commit 3eb5d2fc71c973b95c9678b0644c26c615668218
Author: Roland McGrath <roland@hack.frob.com>
Date: Tue Dec 16 15:14:03 2014 -0800
Use PTR_MANGLE on libgcc unwinder function pointers.
diff --git a/ChangeLog b/ChangeLog
index 76a9849..4be48d0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-12-16 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/gnu/unwind-resume.c: #include <sysdep.h>.
+ (init): Apply PTR_MANGLE to pointers before storing them.
+ (_Unwind_Resume, __gcc_personality_v0): Apply PTR_DEMANGLE to pointers
+ before using them.
+
2014-12-16 Joseph Myers <joseph@codesourcery.com>
[BZ #17719]
diff --git a/sysdeps/gnu/unwind-resume.c b/sysdeps/gnu/unwind-resume.c
index 5044a71..358b3d5 100644
--- a/sysdeps/gnu/unwind-resume.c
+++ b/sysdeps/gnu/unwind-resume.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <unwind.h>
#include <gnu/lib-names.h>
+#include <sysdep.h>
static void (*libgcc_s_resume) (struct _Unwind_Exception *exc)
__attribute__ ((noreturn));
@@ -41,7 +42,9 @@ init (void)
__libc_fatal (LIBGCC_S_SO
" must be installed for pthread_cancel to work\n");
+ PTR_MANGLE (resume);
libgcc_s_resume = resume;
+ PTR_MANGLE (personality);
libgcc_s_personality = personality;
}
@@ -50,7 +53,10 @@ _Unwind_Resume (struct _Unwind_Exception *exc)
{
if (__glibc_unlikely (libgcc_s_resume == NULL))
init ();
- (*libgcc_s_resume) (exc);
+
+ __typeof (libgcc_s_resume) resume = libgcc_s_resume;
+ PTR_DEMANGLE (resume);
+ (*resume) (exc);
}
_Unwind_Reason_Code
@@ -61,6 +67,9 @@ __gcc_personality_v0 (int version, _Unwind_Action actions,
{
if (__glibc_unlikely (libgcc_s_personality == NULL))
init ();
- return (*libgcc_s_personality) (version, actions, exception_class,
- ue_header, context);
+
+ __typeof (libgcc_s_personality) personality = libgcc_s_personality;
+ PTR_DEMANGLE (personality);
+
+ return (*personality) (version, actions, exception_class, ue_header, context);
}
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 +++++++
sysdeps/gnu/unwind-resume.c | 15 ++++++++++++---
2 files changed, 19 insertions(+), 3 deletions(-)
hooks/post-receive
--
GNU C Library master sources