mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-24 12:25:35 +08:00
ed421fca42
__stack_chk_fail is called on corrupted stack. Stack backtrace is very unreliable against corrupted stack. __libc_message is changed to accept enum __libc_message_action and call BEFORE_ABORT only if action includes do_backtrace. __fortify_fail_abort is added to avoid backtrace from __stack_chk_fail. [BZ #12189] * debug/Makefile (CFLAGS-tst-ssp-1.c): New. (tests): Add tst-ssp-1 if -fstack-protector works. * debug/fortify_fail.c: Include <stdbool.h>. (_fortify_fail_abort): New function. (__fortify_fail): Call _fortify_fail_abort. (__fortify_fail_abort): Add a hidden definition. * debug/stack_chk_fail.c: Include <stdbool.h>. (__stack_chk_fail): Call __fortify_fail_abort, instead of __fortify_fail. * debug/tst-ssp-1.c: New file. * include/stdio.h (__libc_message_action): New enum. (__libc_message): Replace int with enum __libc_message_action. (__fortify_fail_abort): New hidden prototype. * malloc/malloc.c (malloc_printerr): Update __libc_message calls. * sysdeps/posix/libc_fatal.c (__libc_message): Replace int with enum __libc_message_action. Call BEFORE_ABORT only if action includes do_backtrace. (__libc_fatal): Update __libc_message call. |
||
---|---|---|
.. | ||
alarm.c | ||
clock_getres.c | ||
clock.c | ||
closedir.c | ||
ctermid.c | ||
cuserid.c | ||
dirfd.c | ||
dirstream.h | ||
dl-fileid.h | ||
dup2.c | ||
dup.c | ||
euidaccess.c | ||
fdopendir.c | ||
flock.c | ||
fpathconf.c | ||
gai_strerror-strs.h | ||
gai_strerror.c | ||
getaddrinfo.c | ||
getcwd.c | ||
getdtsz.c | ||
gethostname.c | ||
getpagesize.c | ||
gettimeofday.c | ||
isatty.c | ||
isfdtype.c | ||
killpg.c | ||
libc_fatal.c | ||
Makefile | ||
mkfifo.c | ||
mkfifoat.c | ||
nice.c | ||
open64.c | ||
opendir.c | ||
pathconf.c | ||
pause.c | ||
posix_fallocate64.c | ||
posix_fallocate.c | ||
pread64.c | ||
pread.c | ||
preadv2.c | ||
preadv64.c | ||
preadv64v2.c | ||
preadv_common.c | ||
preadv.c | ||
profil.c | ||
pwrite64.c | ||
pwrite.c | ||
pwritev2.c | ||
pwritev64.c | ||
pwritev64v2.c | ||
pwritev_common.c | ||
pwritev.c | ||
raise.c | ||
readdir_r.c | ||
readdir.c | ||
readv.c | ||
remove.c | ||
rename.c | ||
rewinddir.c | ||
seekdir.c | ||
shm_open.c | ||
shm_unlink.c | ||
shm-directory.c | ||
shm-directory.h | ||
sigblock.c | ||
sigignore.c | ||
sigintr.c | ||
signal.c | ||
sigpause.c | ||
sigset.c | ||
sigsetmask.c | ||
sigsuspend.c | ||
sigwait.c | ||
sleep.c | ||
spawni.c | ||
sprofil.c | ||
Subdirs | ||
sysconf.c | ||
system.c | ||
sysv_signal.c | ||
telldir.c | ||
tempname.c | ||
time.c | ||
timespec_get.c | ||
truncate.c | ||
ttyname_r.c | ||
ttyname.c | ||
ulimit.c | ||
usleep.c | ||
utime.c | ||
utimes.c | ||
wait3.c | ||
wait.c | ||
waitid.c | ||
writev.c |