mirror of
https://github.com/opnsense/src.git
synced 2026-04-13 13:28:01 -04:00
do not participate in the global symbols namespace, but rtld locks are still replaced and functions are interposed. In particular, __pthread_map_stacks_exec is resolved to the libc version. If a library is loaded later, which requires adjustment of the stack protection mode, rtld calls into libc __pthread_map_stacks_exec due to the symbols scope. The libc version might recurse into binder and recursively acquire rtld bind lock, causing the hang. Make libc __pthread_map_stacks_exec() interposed, which synchronizes rtld locks and version of the stack exec hook when libthr loaded, regardless of the symbol scope control or symbol resolution order. The __pthread_map_stacks_exec() symbol is removed from the private version in libthr since libc symbol now operates correctly in presence of libthr. Reported and tested by: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks |
||
|---|---|---|
| .. | ||
| arch | ||
| support | ||
| sys | ||
| tests | ||
| thread | ||
| libthr.3 | ||
| Makefile | ||
| Makefile.depend | ||
| plockstat.d | ||
| pthread.map | ||