diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-05-15 19:28:04 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-05-15 19:37:13 -0700 |
commit | b50f8e42ba3010f0141e6a482e0820f658e89b63 (patch) | |
tree | 80cef469731d5857499883d45fd3424730f0db7c /include | |
parent | f1342e0be8e222dbca077beca94b5937564e8c4b (diff) | |
download | glibc-b50f8e42ba3010f0141e6a482e0820f658e89b63.zip glibc-b50f8e42ba3010f0141e6a482e0820f658e89b63.tar.gz glibc-b50f8e42ba3010f0141e6a482e0820f658e89b63.tar.bz2 |
Check for valid stack frame in longjmp.
If longjmp restores the stack frame to an address which is beyond
the stack frame at the time of the longjmp call it would install
an uninitialized stack frame. If compiled with _FORTIFY_SOURCE
defined, longjmp will now bail out in this situation.
Diffstat (limited to 'include')
-rw-r--r-- | include/bits/setjmp2.h | 1 | ||||
-rw-r--r-- | include/stdio.h | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/include/bits/setjmp2.h b/include/bits/setjmp2.h new file mode 100644 index 0000000..bdb222c --- /dev/null +++ b/include/bits/setjmp2.h @@ -0,0 +1 @@ +#include <setjmp/bits/setjmp2.h> diff --git a/include/stdio.h b/include/stdio.h index 9fdafe4..a8aab92 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -90,7 +90,8 @@ extern int __gen_tempname (char *__tmpl, int __flags, int __kind); extern void __libc_fatal (__const char *__message) __attribute__ ((__noreturn__)); extern void __libc_message (int do_abort, __const char *__fnt, ...); -extern void __fortify_fail (const char *msg) __attribute__ ((noreturn)); +extern void __fortify_fail (const char *msg) + __attribute__ ((__noreturn__)) internal_function; libc_hidden_proto (__fortify_fail) /* Acquire ownership of STREAM. */ |