diff options
Diffstat (limited to 'libc/sysdeps')
-rw-r--r-- | libc/sysdeps/linux/common/ssp-local.c | 4 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/ssp.c | 9 |
2 files changed, 7 insertions, 6 deletions
diff --git a/libc/sysdeps/linux/common/ssp-local.c b/libc/sysdeps/linux/common/ssp-local.c index 091c34c5d..11ae654c8 100644 --- a/libc/sysdeps/linux/common/ssp-local.c +++ b/libc/sysdeps/linux/common/ssp-local.c @@ -23,7 +23,7 @@ #include <features.h> -extern void __stack_chk_fail (void) attribute_noreturn; +extern void __stack_chk_fail_internal (void) attribute_noreturn; /* On some architectures, this helps needless PIC pointer setup that would be needed just for the __stack_chk_fail call. */ @@ -31,5 +31,5 @@ extern void __stack_chk_fail (void) attribute_noreturn; void attribute_noreturn attribute_hidden __stack_chk_fail_local (void) { - __stack_chk_fail (); + __stack_chk_fail_internal (); } diff --git a/libc/sysdeps/linux/common/ssp.c b/libc/sysdeps/linux/common/ssp.c index 6893ac358..9efcd1a89 100644 --- a/libc/sysdeps/linux/common/ssp.c +++ b/libc/sysdeps/linux/common/ssp.c @@ -39,7 +39,7 @@ #include <signal.h> #include <sys/syslog.h> -static __always_inline void block_signals(void) +static void block_signals(void) { struct sigaction sa; sigset_t mask; @@ -57,7 +57,7 @@ static __always_inline void block_signals(void) sigaction(SSP_SIGTYPE, &sa, NULL); } -static __always_inline void ssp_write(int fd, const char *msg1, const char *msg2, const char *msg3) +static void ssp_write(int fd, const char *msg1, const char *msg2, const char *msg3) { __write(fd, msg1, __strlen(msg1)); __write(fd, msg2, __strlen(msg2)); @@ -68,7 +68,7 @@ static __always_inline void ssp_write(int fd, const char *msg1, const char *msg2 closelog(); } -static __always_inline attribute_noreturn void terminate(void) +static attribute_noreturn void terminate(void) { (void) kill(__getpid(), SSP_SIGTYPE); _exit_internal(127); @@ -88,7 +88,7 @@ void attribute_noreturn __stack_smash_handler(char func[], int damaged) terminate(); } -void attribute_noreturn __stack_chk_fail(void) +void attribute_noreturn attribute_hidden __stack_chk_fail_internal(void) { static const char msg1[] = "stack smashing detected: "; static const char msg3[] = " terminated"; @@ -101,6 +101,7 @@ void attribute_noreturn __stack_chk_fail(void) while(1) terminate(); } +strong_alias(__stack_chk_fail_internal,__stack_chk_fail) #if 0 void attribute_noreturn __chk_fail(void) |