summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-06-07 04:14:23 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-06-07 04:14:23 +0200
commit4fee9155f396cb2bcfe707f78aa4332837520f93 (patch)
tree5df718b52bfcdf91a0de8c880dc9e9d47bdb3432
parent2e045f9867bfc62e64412bc039400d411da1d2d2 (diff)
ssp: remove SSP legacy code
Nobody should use gcc 3.3 nowadays.
-rw-r--r--extra/Configs/Config.in16
-rw-r--r--ldso/ldso/ldso.c6
-rw-r--r--libc/misc/internals/__uClibc_main.c7
-rw-r--r--libc/sysdeps/linux/common/ssp.c27
4 files changed, 1 insertions, 55 deletions
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index f3494db99..a21bdac2f 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -2151,22 +2151,6 @@ config UCLIBC_HAS_SSP
Most people will answer N.
-config UCLIBC_HAS_SSP_COMPAT
- bool "Support for gcc-3.x propolice smashing stack protector"
- depends on UCLIBC_HAS_SSP
- help
- Add gcc-3.x propolice smashing stack protector to the library.
-
- This requires a patched version of GCC, supporting the
- -fstack-protector[-all] options, with the __guard and
- __stack_smash_handler functions removed from libgcc.
- These functions are added to ldso/libc instead.
-
- More information at:
- <http://www.research.ibm.com/trl/projects/security/ssp/>
-
- Most people will answer N.
-
config SSP_QUICK_CANARY
bool "Use simple guard values without accessing /dev/urandom"
depends on UCLIBC_HAS_SSP
diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
index 9f4e84130..7bb6a349b 100644
--- a/ldso/ldso/ldso.c
+++ b/ldso/ldso/ldso.c
@@ -120,9 +120,6 @@ static uintptr_t stack_chk_guard;
* in local thread area. */
uintptr_t __stack_chk_guard attribute_relro;
# endif
-# ifdef __UCLIBC_HAS_SSP_COMPAT__
-uintptr_t __guard attribute_relro;
-# endif
#endif
#ifdef __LDSO_SEARCH_INTERP_PATH__
@@ -1217,9 +1214,6 @@ of this helper program; chances are you did not intend to run this program.\n\
# else
__stack_chk_guard = stack_chk_guard;
# endif
-# ifdef __UCLIBC_HAS_SSP_COMPAT__
- __guard = stack_chk_guard;
-# endif
#endif
#ifdef __LDSO_PRELINK_SUPPORT__
diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c
index 632a2528e..9bb81fc83 100644
--- a/libc/misc/internals/__uClibc_main.c
+++ b/libc/misc/internals/__uClibc_main.c
@@ -61,10 +61,6 @@ static uintptr_t stack_chk_guard;
/* for gcc-4.1 non-TLS */
uintptr_t __stack_chk_guard attribute_relro;
# endif
-/* for gcc-3.x + Etoh ssp */
-# ifdef __UCLIBC_HAS_SSP_COMPAT__
-uintptr_t __guard attribute_relro;
-# endif
# endif
/*
@@ -274,9 +270,6 @@ void __uClibc_init(void)
# else
__stack_chk_guard = stack_chk_guard;
# endif
-# ifdef __UCLIBC_HAS_SSP_COMPAT__
- __guard = stack_chk_guard;
-# endif
# endif
#endif
diff --git a/libc/sysdeps/linux/common/ssp.c b/libc/sysdeps/linux/common/ssp.c
index 8dcc3dc59..87e10c2da 100644
--- a/libc/sysdeps/linux/common/ssp.c
+++ b/libc/sysdeps/linux/common/ssp.c
@@ -51,18 +51,11 @@ static void __cold do_msg(const char *msg1, const char *msg2, const char *msg3)
}
static void __cold attribute_noreturn
-#ifdef __UCLIBC_HAS_SSP_COMPAT__
-ssp_handler(char func[])
-#else
ssp_handler(void)
-#endif
{
pid_t pid;
static const char msg_ssd[] = "*** stack smashing detected ***: ";
static const char msg_terminated[] = " terminated";
-#ifdef __UCLIBC_HAS_SSP_COMPAT__
- static const char msg_ssa[] = ": stack smashing attack in function ";
-#endif
#ifdef __DODEBUG__
struct sigaction sa;
@@ -73,12 +66,7 @@ ssp_handler(void)
sigprocmask(SIG_BLOCK, &mask, NULL); /* except SSP_SIGTYPE */
#endif
-#ifdef __UCLIBC_HAS_SSP_COMPAT__
- if (func != NULL)
- do_msg(__uclibc_progname, msg_ssa, func);
- else
-#endif
- do_msg(msg_ssd, __uclibc_progname, msg_terminated);
+ do_msg(msg_ssd, __uclibc_progname, msg_terminated);
pid = getpid();
#ifdef __DODEBUG__
@@ -96,20 +84,7 @@ ssp_handler(void)
_exit(127);
}
-#ifdef __UCLIBC_HAS_SSP_COMPAT__
-void __stack_smash_handler(char func[], int damaged) attribute_noreturn __cold;
-void __stack_smash_handler(char func[], int damaged attribute_unused)
-{
- ssp_handler(func);
-}
-
-void __stack_chk_fail(void)
-{
- ssp_handler(NULL);
-}
-#else
strong_alias(ssp_handler,__stack_chk_fail)
-#endif
#ifdef __UCLIBC_HAS_FORTIFY__
/* should be redone when activated to use common code above.