995b92da50
Call _thr_check_init() before reading curthread in pthread_testcancel(). If a constructor in a library creates a semaphore via sem_init() and then waits for it via sem_wait(), the program can core dump in _pthread_testcancel() called from sem_wait(). This is because the semaphore implementation lives in libc, so the library's constructors can be run before libthr's constructors. Reported by: arichardson Reviewed by: kib Obtained from: CheriBSD MFC after: 1 week Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D14786 |
||
---|---|---|
.. | ||
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_pshared.c | ||
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 |