freebsd-dev/lib/libthr/thread
John Baldwin dc3566067a Ensure thread library is initialized in pthread_testcancel().
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
2018-03-21 21:13:26 +00:00
..
Makefile.inc Implement process-shared locks support for libthr.so.3, without 2016-02-28 17:52:33 +00:00
thr_affinity.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_attr.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
thr_autoinit.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
thr_barrier.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_barrierattr.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_cancel.c Ensure thread library is initialized in pthread_testcancel(). 2018-03-21 21:13:26 +00:00
thr_clean.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_concurrency.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
thr_cond.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_condattr.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_create.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_ctrdtr.c Merge all the copies of _tcb_ctor and _tcb_dtor. 2015-01-21 16:41:05 +00:00
thr_detach.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_equal.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_event.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_exit.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_fork.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_getcpuclockid.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_getprio.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_getschedparam.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
thr_getthreadid_np.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_info.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_init.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
thr_join.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_kern.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_kill.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_list.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_main_np.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_multi_np.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_mutex.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
thr_mutexattr.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_once.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_printf.c libthr: Fix missing break in switch. 2018-01-27 22:27:55 +00:00
thr_private.h lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_pshared.c Lock pshared_lock shared around fork, to ensure that the COW snapshot 2016-03-21 06:52:35 +00:00
thr_pspinlock.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_resume_np.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_rtld.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_rwlock.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_rwlockattr.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_self.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_sem.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_setprio.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_setschedparam.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
thr_sig.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_single_np.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_sleepq.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_spec.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_spinlock.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_stack.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_suspend_np.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_switch_np.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
thr_symbols.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_syscalls.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_umtx.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_umtx.h lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_yield.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00