Browse Source

ssp: remove SSP legacy code

Nobody should use gcc 3.3 nowadays.
Waldemar Brodkorb 8 years ago
parent
commit
4fee9155f3
4 changed files with 1 additions and 55 deletions
  1. 0 16
      extra/Configs/Config.in
  2. 0 6
      ldso/ldso/ldso.c
  3. 0 7
      libc/misc/internals/__uClibc_main.c
  4. 1 26
      libc/sysdeps/linux/common/ssp.c

+ 0 - 16
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

+ 0 - 6
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__

+ 0 - 7
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
 

+ 1 - 26
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.