summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/common
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/common')
-rw-r--r--libc/sysdeps/linux/common/ssp-local.c4
-rw-r--r--libc/sysdeps/linux/common/ssp.c9
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)