Nobody should use gcc 3.3 nowadays.
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
* 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__
# else
__stack_chk_guard = stack_chk_guard;
# endif
-# ifdef __UCLIBC_HAS_SSP_COMPAT__
- __guard = stack_chk_guard;
-# endif
#endif
#ifdef __LDSO_PRELINK_SUPPORT__
/* 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
/*
# else
__stack_chk_guard = stack_chk_guard;
# endif
-# ifdef __UCLIBC_HAS_SSP_COMPAT__
- __guard = stack_chk_guard;
-# endif
# endif
#endif
}
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;
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__
_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.