mirror of
https://github.com/opnsense/src.git
synced 2026-04-26 16:47:30 -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 |
||
|---|---|---|
| .. | ||
| Makefile.inc | ||
| thr_affinity.c | ||
| thr_attr.c | ||
| thr_autoinit.c | ||
| thr_barrier.c | ||
| thr_barrierattr.c | ||
| thr_cancel.c | ||
| thr_clean.c | ||
| thr_concurrency.c | ||
| thr_cond.c | ||
| thr_condattr.c | ||
| thr_create.c | ||
| thr_ctrdtr.c | ||
| thr_detach.c | ||
| thr_equal.c | ||
| thr_event.c | ||
| thr_exit.c | ||
| thr_fork.c | ||
| thr_getcpuclockid.c | ||
| thr_getprio.c | ||
| thr_getschedparam.c | ||
| thr_getthreadid_np.c | ||
| thr_info.c | ||
| thr_init.c | ||
| thr_join.c | ||
| thr_kern.c | ||
| thr_kill.c | ||
| thr_list.c | ||
| thr_main_np.c | ||
| thr_multi_np.c | ||
| thr_mutex.c | ||
| thr_mutexattr.c | ||
| thr_once.c | ||
| thr_printf.c | ||
| thr_private.h | ||
| thr_pspinlock.c | ||
| thr_resume_np.c | ||
| thr_rtld.c | ||
| thr_rwlock.c | ||
| thr_rwlockattr.c | ||
| thr_self.c | ||
| thr_sem.c | ||
| thr_setprio.c | ||
| thr_setschedparam.c | ||
| thr_sig.c | ||
| thr_single_np.c | ||
| thr_sleepq.c | ||
| thr_spec.c | ||
| thr_spinlock.c | ||
| thr_stack.c | ||
| thr_suspend_np.c | ||
| thr_switch_np.c | ||
| thr_symbols.c | ||
| thr_syscalls.c | ||
| thr_umtx.c | ||
| thr_umtx.h | ||
| thr_yield.c | ||