platform_bionic/libc/arch-arm64/bionic
Peter Collingbourne 734beec3d4 Allocate a small guard region around the shadow call stack.
This lets us do two things:

1) Make setjmp and longjmp compatible with shadow call stack.
   To avoid leaking the shadow call stack address into memory, only the
   lower log2(SCS_SIZE) bits of x18 are stored to jmp_buf. This requires
   allocating an additional guard page so that we're guaranteed to be
   able to allocate a sufficiently aligned SCS.

2) SCS overflow detection. Overflows now result in a SIGSEGV instead
   of corrupting the allocation that comes after it.

Change-Id: I04d6634f96162bf625684672a87fba8b402b7fd1
Test: bionic-unit-tests
2018-11-16 14:37:08 -08:00
..
__bionic_clone.S Use ENTRY_PRIVATE in __bionic_clone assembler. 2016-10-26 17:01:58 -07:00
__set_tls.c Hide __set_tls. 2014-05-20 20:32:28 -07:00
_exit_with_stack_teardown.S Hide _exit_with_stack_teardown. 2014-05-16 16:17:44 -07:00
setjmp.S Allocate a small guard region around the shadow call stack. 2018-11-16 14:37:08 -08:00
syscall.S Ensure __set_errno is still visible on LP32. 2014-09-08 16:46:50 -07:00
vfork.S Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols 2017-10-27 10:01:46 +02:00