mirror of
https://github.com/opnsense/src.git
synced 2026-04-15 14:29:58 -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 |
||
|---|---|---|
| .. | ||
| isc | ||
| block_abi.h | ||
| compat.h | ||
| errlst.h | ||
| fpmath.h | ||
| libc_private.h | ||
| namespace.h | ||
| nscache.h | ||
| nscachedcli.h | ||
| nss_tls.h | ||
| port_after.h | ||
| port_before.h | ||
| reentrant.h | ||
| resolv_mt.h | ||
| spinlock.h | ||
| un-namespace.h | ||