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.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


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