glibc/sysdeps/unix/sysv/linux/arm
Szabolcs Nagy 8d4d77f6c8 arm: Fix an incorrect check in ____longjmp_chk [BZ #27709]
An incorrect check in __longjmp_chk could fail on valid code causing

FAIL: debug/tst-longjmp_chk2

The original check was

  altstack_sp + altstack_size - setjmp_sp > altstack_size

i.e. sp at setjmp was outside of the altstack range. Here we know that
longjmp is called from a signal handler on the altstack (SS_ONSTACK),
and that it jumps in the wrong direction (sp decreases), so the check
wants to ensure the jump goes to another stack.

The check is wrong when altstack_sp == setjmp_sp which can happen
when the altstack is a local buffer in the function that calls setjmp,
so the patch allows == too. This fixes bug 27709.

Note that the generic __longjmp_chk check seems to be different.
(it checks if longjmp was on the altstack but does not check setjmp,
so it would not catch incorrect longjmp use within the signal handler).
2021-04-12 14:28:07 +01:00
..
be nptl: Remove __libc_allocate_rtsig, __libc_current_sigrtmax, and __libc_current_sigrtmin 2021-03-26 13:37:18 -03:00
bits Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
le nptl: Remove __libc_allocate_rtsig, __libc_current_sigrtmax, and __libc_current_sigrtmin 2021-03-26 13:37:18 -03:00
sys Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
Implies
Makefile elf: Move vDSO setup to rtld (BZ#24967) 2020-01-03 11:22:07 -03:00
Versions
____longjmp_chk.S arm: Fix an incorrect check in ____longjmp_chk [BZ #27709] 2021-04-12 14:28:07 +01:00
aeabi_read_tp.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
arch-syscall.h Update syscall lists for Linux 5.11. 2021-02-19 21:16:27 +00:00
arm-features.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
atomic-machine.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
c++-types.data
clone.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-cache.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-machine.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-procinfo.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-procinfo.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
fixup-asm-unistd.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
getcontext.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ioperm.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
jmp_buf-macros.h Add jmp_buf-macros.h 2017-11-09 05:10:03 -08:00
kernel-features.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
kernel_stat.h linux: Set default kernel_stat.h to LFS 2021-02-11 07:58:05 -03:00
ldconfig.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ldsodefs.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libc-do-syscall.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libc_sigaction.c signal: Add __libc_sigaction 2021-03-18 15:54:39 -03:00
localplt.data nptl: Remove pthread raise implementation 2021-03-26 13:37:18 -03:00
makecontext.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
profil-counter.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
readelflib.c ldconfig/x86: Store ISA level in cache and aux cache 2021-01-13 05:51:17 -08:00
register-dump.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
setcontext.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
shlib-versions
sigcontextinfo.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
sigrestorer.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
swapcontext.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
syscall.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
syscalls.list
sysdep.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
sysdep.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tls.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ucontext_i.sym
vfork.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00