summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/common/ssp.c
diff options
context:
space:
mode:
authorPeter S. Mazinger <ps.m@gmx.net>2011-02-26 21:49:38 +0100
committerPeter S. Mazinger <ps.m@gmx.net>2011-03-03 18:22:49 +0100
commit2e9d2266c0cea250f7a87dc6aa2b02d0bd5a0aea (patch)
treeedcf4df26d09584490cf70dc77c194793ba6d19d /libc/sysdeps/linux/common/ssp.c
parentf00e553e4b084007781df5e4b5accc2e152da231 (diff)
Correct ssp code
Avoid using strong_alias in ssp, some archs dislike it. Make stack_chk_guard static. Export __stack_smash_handler only if compatibility option is enabled. Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
Diffstat (limited to 'libc/sysdeps/linux/common/ssp.c')
-rw-r--r--libc/sysdeps/linux/common/ssp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/common/ssp.c b/libc/sysdeps/linux/common/ssp.c
index a2d7ff2ca..d81c706f4 100644
--- a/libc/sysdeps/linux/common/ssp.c
+++ b/libc/sysdeps/linux/common/ssp.c
@@ -71,6 +71,7 @@ static attribute_noreturn void terminate(void)
_exit(127);
}
+#ifdef __UCLIBC_HAS_SSP_COMPAT__
void __stack_smash_handler(char func[], int damaged __attribute__ ((unused))) attribute_noreturn __cold;
void __stack_smash_handler(char func[], int damaged)
{
@@ -84,6 +85,7 @@ void __stack_smash_handler(char func[], int damaged)
while(1)
terminate();
}
+#endif
void __stack_chk_fail(void) attribute_noreturn __cold;
void __stack_chk_fail(void)
@@ -114,4 +116,3 @@ void __chk_fail(void)
while(1)
terminate();
}
-