glibc/sysdeps/x86_64
Adhemerval Zanella 89b53077d2 nptl: Fix Race conditions in pthread cancellation [BZ#12683]
The current racy approach is to enable asynchronous cancellation
before making the syscall and restore the previous cancellation
type once the syscall returns, and check if cancellation has happen
during the cancellation entrypoint.

As described in BZ#12683, this approach shows 2 problems:

  1. Cancellation can act after the syscall has returned from the
     kernel, but before userspace saves the return value.  It might
     result in a resource leak if the syscall allocated a resource or a
     side effect (partial read/write), and there is no way to program
     handle it with cancellation handlers.

  2. If a signal is handled while the thread is blocked at a cancellable
     syscall, the entire signal handler runs with asynchronous
     cancellation enabled.  This can lead to issues if the signal
     handler call functions which are async-signal-safe but not
     async-cancel-safe.

For the cancellation to work correctly, there are 5 points at which the
cancellation signal could arrive:

	[ ... )[ ... )[ syscall ]( ...
	   1      2        3    4   5

  1. Before initial testcancel, e.g. [*... testcancel)
  2. Between testcancel and syscall start, e.g. [testcancel...syscall start)
  3. While syscall is blocked and no side effects have yet taken
     place, e.g. [ syscall ]
  4. Same as 3 but with side-effects having occurred (e.g. a partial
     read or write).
  5. After syscall end e.g. (syscall end...*]

And libc wants to act on cancellation in cases 1, 2, and 3 but not
in cases 4 or 5.  For the 4 and 5 cases, the cancellation will eventually
happen in the next cancellable entrypoint without any further external
event.

The proposed solution for each case is:

  1. Do a conditional branch based on whether the thread has received
     a cancellation request;

  2. It can be caught by the signal handler determining that the saved
     program counter (from the ucontext_t) is in some address range
     beginning just before the "testcancel" and ending with the
     syscall instruction.

  3. SIGCANCEL can be caught by the signal handler and determine that
     the saved program counter (from the ucontext_t) is in the address
     range beginning just before "testcancel" and ending with the first
     uninterruptable (via a signal) syscall instruction that enters the
      kernel.

  4. In this case, except for certain syscalls that ALWAYS fail with
     EINTR even for non-interrupting signals, the kernel will reset
     the program counter to point at the syscall instruction during
     signal handling, so that the syscall is restarted when the signal
     handler returns.  So, from the signal handler's standpoint, this
     looks the same as case 2, and thus it's taken care of.

  5. For syscalls with side-effects, the kernel cannot restart the
     syscall; when it's interrupted by a signal, the kernel must cause
     the syscall to return with whatever partial result is obtained
     (e.g. partial read or write).

  6. The saved program counter points just after the syscall
     instruction, so the signal handler won't act on cancellation.
     This is similar to 4. since the program counter is past the syscall
     instruction.

So The proposed fixes are:

  1. Remove the enable_asynccancel/disable_asynccancel function usage in
     cancellable syscall definition and instead make them call a common
     symbol that will check if cancellation is enabled (__syscall_cancel
     at nptl/cancellation.c), call the arch-specific cancellable
     entry-point (__syscall_cancel_arch), and cancel the thread when
     required.

  2. Provide an arch-specific generic system call wrapper function
     that contains global markers.  These markers will be used in
     SIGCANCEL signal handler to check if the interruption has been
     called in a valid syscall and if the syscalls has side-effects.

     A reference implementation sysdeps/unix/sysv/linux/syscall_cancel.c
     is provided.  However, the markers may not be set on correct
     expected places depending on how INTERNAL_SYSCALL_NCS is
     implemented by the architecture.  It is expected that all
     architectures add an arch-specific implementation.

  3. Rewrite SIGCANCEL asynchronous handler to check for both canceling
     type and if current IP from signal handler falls between the global
     markers and act accordingly.

  4. Adjust libc code to replace LIBC_CANCEL_ASYNC/LIBC_CANCEL_RESET to
     use the appropriate cancelable syscalls.

  5. Adjust 'lowlevellock-futex.h' arch-specific implementations to
     provide cancelable futex calls.

Some architectures require specific support on syscall handling:

  * On i386 the syscall cancel bridge needs to use the old int80
    instruction because the optimized vDSO symbol the resulting PC value
    for an interrupted syscall points to an address outside the expected
    markers in __syscall_cancel_arch.  It has been discussed in LKML [1]
    on how kernel could help userland to accomplish it, but afaik
    discussion has stalled.

    Also, sysenter should not be used directly by libc since its calling
    convention is set by the kernel depending of the underlying x86 chip
    (check kernel commit 30bfa7b3488bfb1bb75c9f50a5fcac1832970c60).

  * mips o32 is the only kABI that requires 7 argument syscall, and to
    avoid add a requirement on all architectures to support it, mips
    support is added with extra internal defines.

Checked on aarch64-linux-gnu, arm-linux-gnueabihf, powerpc-linux-gnu,
powerpc64-linux-gnu, powerpc64le-linux-gnu, i686-linux-gnu, and
x86_64-linux-gnu.

[1] https://lkml.org/lkml/2016/3/8/1105
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2024-08-23 14:27:43 -03:00
..
64 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fpu added inputs giving large errors on x86_64 for new C23 functions 2024-08-07 14:28:46 +02:00
htl Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
multiarch x86: Unifies 'strnlen-evex' and 'strnlen-evex512' implementations. 2024-08-19 07:34:02 -07:00
nptl nptl: Fix Race conditions in pthread cancellation [BZ#12683] 2024-08-23 14:27:43 -03:00
sys Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
x32 x86-64: Remove sysdeps/x86_64/x32/dl-machine.h 2024-07-25 00:17:21 -07:00
____longjmp_chk.S
__longjmp.S x86-64/cet: Check the restore token in longjmp 2024-01-04 13:38:26 -08:00
_mcount.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
abort-instr.h
add_n.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
addmul_1.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
bsd-_setjmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
bsd-setjmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
check-cet.awk x86-64/cet: Move check-cet.awk to x86_64 2024-01-10 05:20:16 -08:00
configure Convert to autoconf 2.72 (vanilla release, no distribution patches) 2024-06-17 21:15:28 +02:00
configure.ac x86-64: Exclude FMA4 IFUNC functions for -mapxf 2024-04-06 05:03:55 -07:00
crti.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
crtn.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-cache.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-cet.c x86-64/cet: Move dl-cet.[ch] to x86_64 directories 2024-01-10 05:19:32 -08:00
dl-dtprocnum.h elf: Add ELF_DYNAMIC_AFTER_RELOC to rewrite PLT 2024-01-05 05:49:49 -08:00
dl-hwcaps-subdirs.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-irel.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-machine.h x86-64: Remove sysdeps/x86_64/x32/dl-machine.h 2024-07-25 00:17:21 -07:00
dl-plt-rewrite.h x86-64: Check if mprotect works before rewriting PLT 2024-01-15 06:59:23 -08:00
dl-procinfo.c x86: Update _dl_tlsdesc_dynamic to preserve caller-saved registers 2024-02-28 09:02:56 -08:00
dl-procruntime.c elf: Remove _DL_PLATFORMS_COUNT 2024-06-18 10:45:36 +02:00
dl-runtime.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-tls.c elf: Support recursive use of dynamic TLS in interposed malloc 2024-07-01 19:02:11 +02:00
dl-tls.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-tlsdesc-dynamic.h x86-64: Update _dl_tlsdesc_dynamic to preserve AMX registers 2024-02-29 04:30:01 -08:00
dl-tlsdesc.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-tlsdesc.S x86-64: Don't use SSE resolvers for ISA level 3 or above 2024-02-28 11:49:30 -08:00
dl-trampoline-save.h x86: Update _dl_tlsdesc_dynamic to preserve caller-saved registers 2024-02-28 09:02:56 -08:00
dl-trampoline-state.h x86: Update _dl_tlsdesc_dynamic to preserve caller-saved registers 2024-02-28 09:02:56 -08:00
dl-trampoline.h x86: Update _dl_tlsdesc_dynamic to preserve caller-saved registers 2024-02-28 09:02:56 -08:00
dl-trampoline.S x86: Update _dl_tlsdesc_dynamic to preserve caller-saved registers 2024-02-28 09:02:56 -08:00
feature-control.h i386: Remove CET support bits 2024-01-10 05:20:20 -08:00
ifuncmain8.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifuncmod8.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Implies Remove dbl-64/wordsize-64 (part 2) 2021-01-07 15:26:26 +00:00
isa-default-impl.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isa.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
jmpbuf-offsets.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
jmpbuf-unwind.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
l10nflist.c
ldsodefs.h i386: Remove CET support bits 2024-01-10 05:20:20 -08:00
libc-start.h x86: Move x86-64 shadow stack startup codes 2024-01-10 05:19:32 -08:00
link_map.h elf: Add ELF_DYNAMIC_AFTER_RELOC to rewrite PLT 2024-01-05 05:49:49 -08:00
link-defines.sym elf: Remove Intel MPX support (lazy PLT, ld.so profile, and LD_AUDIT) 2021-10-11 11:14:02 -07:00
locale-defines.sym
localplt.data elf: Rework exception handling in the dynamic loader [BZ #25486] 2022-11-03 09:39:31 +01:00
lshift.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
machine-gmon.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Makefile Revert "x86_64: Suppress false positive valgrind error" 2024-04-13 17:42:13 +02:00
math-use-builtins-ffs.h string: Use builtins for ffs and ffsll 2024-02-01 09:31:33 -03:00
memchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmpeq.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcpy_chk.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcpy.S x86_64: Fix build with --disable-multiarch (BZ 30721) 2023-08-10 10:29:29 -03:00
memmove_chk.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memmove.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mempcpy_chk.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mempcpy.S X86-64: Remove previous default/SSE2/AVX2 memcpy/memmove 2016-06-08 13:58:08 -07:00
memrchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memset_chk.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memset.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mp_clz_tab.c
mul_1.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
preconfigure configure: Use autoconf 2.71 2023-07-17 10:08:10 -04:00
preconfigure.ac rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
rawmemchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rshift.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-offsets.sym x86-64: Align the stack in __tls_get_addr [BZ #21609] 2017-07-06 04:43:20 -07:00
setjmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
stackguard-macros.h BZ #15754: CVE-2013-4788 2013-09-23 00:52:09 -04:00
stackinfo.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
start.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
stpcpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
stpncpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcasecmp_l-nonascii.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
strcasecmp_l.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcasecmp.S
strcat.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchr-isa-default-impl.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchrnul.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcspn-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcspn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strlen.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncase_l-nonascii.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
strncase_l.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncase.S
strncat.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strnlen.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strpbrk-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strpbrk.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strrchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strspn-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strspn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
sub_n.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
submul_1.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
sysdep.h i386: Remove CET support 2024-01-09 13:55:51 -03:00
tls_get_addr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tlsdesc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tlsdesc.sym x86-64: Align the stack in __tls_get_addr [BZ #21609] 2017-07-06 04:43:20 -07:00
tst-audit3.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-audit4-aux.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-audit4.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-audit5.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-audit6.c Modify several tests to use test-skeleton.c 2015-07-15 15:10:23 +05:30
tst-audit7.c
tst-audit10-aux.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-audit10.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-audit.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-auditmod3a.c
tst-auditmod3b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod4a.c
tst-auditmod4b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod5a.c
tst-auditmod5b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod6a.c
tst-auditmod6b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod6c.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod7a.c
tst-auditmod7b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod10a.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-auditmod10b.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-avx512-aux.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-avx512.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-avx512mod.c x86-64: Verify that _dl_runtime_resolve preserves vector registers 2017-02-09 12:19:58 -08:00
tst-avx-aux.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-avx.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-avxmod.c x86-64: Verify that _dl_runtime_resolve preserves vector registers 2017-02-09 12:19:58 -08:00
tst-cet-legacy-1.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-1a.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-2.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-2a.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-3.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-4.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-4a.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-4b.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-4c.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-5.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-5a.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-5b.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-6.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-6a.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-6b.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-7.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-8.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-9-static.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-9.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-10-static.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-10.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-10a-static.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-10a.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-1.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-2.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-4.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-5.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-5a.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-5b.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-5c.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-6.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-6a.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-6b.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-6c.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-cet-legacy-mod-6d.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-glibc-hwcaps.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-gnu2-tls2mod1.S x86-64: Allocate state buffer space for RDI, RSI and RBX 2024-03-18 19:45:13 -07:00
tst-platform-1.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-platformmod-1.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-platformmod-2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-plt-rewrite1.c elf: Add ELF_DYNAMIC_AFTER_RELOC to rewrite PLT 2024-01-05 05:49:49 -08:00
tst-plt-rewrite2.c x32: Handle displacement overflow in PLT rewrite [BZ #31218] 2024-01-06 14:25:49 -08:00
tst-plt-rewritemod1.c elf: Add ELF_DYNAMIC_AFTER_RELOC to rewrite PLT 2024-01-05 05:49:49 -08:00
tst-plt-rewritemod2.c x32: Handle displacement overflow in PLT rewrite [BZ #31218] 2024-01-06 14:25:49 -08:00
tst-quad1.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-quad1pie.c
tst-quad2.c
tst-quad2pie.c
tst-quadmod1.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-quadmod1pie.S
tst-quadmod2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-quadmod2pie.S
tst-rsi-strlen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-rsi-wcslen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1-extra.S x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1a-static.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1a.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1b-static.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1b.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1c-static.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1c.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1d-static.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1d.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1e-static.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1e-static.sh x86/cet: fix shadow stack test scripts 2024-02-12 06:49:57 -08:00
tst-shstk-legacy-1e.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1e.sh x86/cet: fix shadow stack test scripts 2024-02-12 06:49:57 -08:00
tst-shstk-legacy-1f.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1g.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-shstk-legacy-1g.sh x86/cet: fix shadow stack test scripts 2024-02-12 06:49:57 -08:00
tst-shstk-legacy-mod-1.c x86: Move CET infrastructure to x86_64 2024-01-09 13:55:51 -03:00
tst-split-dynreloc.c Fix dynamic linker issue with bind-now 2015-08-19 05:37:01 -07:00
tst-split-dynreloc.lds Fix dynamic linker issue with bind-now 2015-08-19 05:37:01 -07:00
tst-sse.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-ssemod.c x86-64: Verify that _dl_runtime_resolve preserves vector registers 2017-02-09 12:19:58 -08:00
varshift.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Versions Move __fentry__ version definition to sysdeps/{i386,x86_64} 2018-08-10 09:07:44 +02:00
wcpcpy-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcpcpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcpncpy-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcpncpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscat-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscat.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcschr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscpy-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcslen.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncat-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncat.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncmp-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncpy-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsnlen-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsnlen.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsrchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemcmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemset_chk.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemset.S x86-64: Optimize wmemset with SSE2/AVX2/AVX512 2017-06-05 11:09:59 -07:00
wordcopy.c X86-64: Add dummy memcopy.h and wordcopy.c 2016-06-09 04:38:34 -07:00
x86-lp_size.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00