about summary refs log tree commit diff
path: root/elf/tst-dlmopen-twice.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix elf/tst-dlmopen-twice not to exhaust static TLSSzabolcs Nagy2022-10-281-2/+2
| | | | | | | By default glibc only allocates enough static TLS for 4 link namespaces including the initial one. So only use 3 dlmopens in the test. Reviewed-by: Florian Weimer <fweimer@redhat.com>
* elf: Do not completely clear reused namespace in dlmopen (bug 29600)Florian Weimer2022-10-141-4/+24
| | | | | | | | | | | | | The data in the _ns_debug member must be preserved, otherwise _dl_debug_initialize enters an infinite loop. To be conservative, only clear the libc_map member for now, to fix bug 29528. Fixes commit d0e357ff45a75553dee3b17ed7d303bfa544f6fe ("elf: Call __libc_early_init for reused namespaces (bug 29528)"), by reverting most of it. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
* elf: Call __libc_early_init for reused namespaces (bug 29528)Florian Weimer2022-08-261-0/+34
libc_map is never reset to NULL, neither during dlclose nor on a dlopen call which reuses the namespace structure. As a result, if a namespace is reused, its libc is not initialized properly. The most visible result is a crash in the <ctype.h> functions. To prevent similar bugs on namespace reuse from surfacing, unconditionally initialize the chosen namespace to zero using memset.