diff options
author | Florian Weimer <fweimer@redhat.com> | 2025-01-16 20:02:42 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2025-01-16 20:02:42 +0100 |
commit | 7f784ffc173b5a2166ff846fd003a2264d614456 (patch) | |
tree | aae075df1710ce59fb449d88646725bbd42026f5 /sysdeps/unix/sysv/linux/tst-rseq-tls-range.c | |
parent | 0b795abd62282767a219a72c8c6fef753bacedfa (diff) | |
download | glibc-7f784ffc173b5a2166ff846fd003a2264d614456.zip glibc-7f784ffc173b5a2166ff846fd003a2264d614456.tar.gz glibc-7f784ffc173b5a2166ff846fd003a2264d614456.tar.bz2 |
elf: Iterate over loaded object list in _dl_determine_tlsoffset
The old code used the slotinfo array as a scratch area to pass the
list of TLS-using objects to _dl_determine_tlsoffset. All array
entries are subsequently overwritten by _dl_add_to_slotinfo,
except the first one. The link maps are usually not at their
right position for their module ID in the slotinfo array, so
the initial use of the slotinfo array would be incorrect if not
for scratch purposes only.
In _dl_tls_initial_modid_limit_setup, the old code relied that
some link map was written to the first slotinfo entry. After the
change, this no longer happens because TLS module ID zero is unused.
It's also necessary to move the call after the real initialization
of the slotinfo array.
Diffstat (limited to 'sysdeps/unix/sysv/linux/tst-rseq-tls-range.c')
0 files changed, 0 insertions, 0 deletions