opnsense-src/lib/libthr/thread
Konstantin Belousov 25c862ae50 libthr pshared: correct a bug in allocation
When __thr_pshared_offpage() is called for allocation, it must not use
the cached offpage for the key.  Instead, the cached offpage must be
unmapped and removed from the cache, if any.

It is legitimate for the user code to unmap the shared lock object without
destroying it, and then mapping something over the freed VA to carry
another shared lock.  In this case the cached offpage must be un-cached.

PR:	269277
Reported by:	rau8344@gmail.com
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D38345
2023-02-02 00:59:27 +02:00
..
Makefile.inc Untangle jemalloc and mutexes initialization. 2019-01-29 22:46:44 +00:00
thr_affinity.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_attr.c libthr: Trim trailing whitespaces in pthread_attr_affinity. 2023-01-29 15:38:04 +03:00
thr_autoinit.c libthr(3): Fix a typo in a source code comment 2023-01-11 11:48:14 +01:00
thr_barrier.c Remove PAGE_SIZE from libthr 2022-05-03 11:04:41 +01:00
thr_barrierattr.c POSIX compliance improvements in the pthread(3) functions. 2018-08-18 01:05:38 +00:00
thr_cancel.c Return success, instead of ESRCH, from pthread_cancel(3) applied to the 2020-02-13 23:22:12 +00:00
thr_clean.c Avoid conflicts with libc symbols in libthr jump table. 2019-07-31 19:27:20 +00:00
thr_concurrency.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
thr_cond.c Remove PAGE_SIZE from libthr 2022-05-03 11:04:41 +01:00
thr_condattr.c POSIX compliance improvements in the pthread(3) functions. 2018-08-18 01:05:38 +00:00
thr_create.c Use sigfastblock(2) for masking signals in libthr. 2020-02-09 12:27:22 +00:00
thr_ctrdtr.c libthr: Use TLS_TCB_* in _tcb_[cd]tor. 2022-01-25 11:38:34 -08:00
thr_detach.c Avoid conflicts with libc symbols in libthr jump table. 2019-07-31 19:27:20 +00:00
thr_equal.c Avoid conflicts with libc symbols in libthr jump table. 2019-07-31 19:27:20 +00:00
thr_event.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
thr_exit.c Use uintptr_t for return type of _Unwind_GetCFA. 2022-01-27 10:53:21 -08:00
thr_fork.c libthr: wrap pdfork(2), same as fork(2). 2021-01-11 22:59:52 +02: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 POSIX compliance improvements in the pthread(3) functions. 2018-08-18 01:05:38 +00:00
thr_getthreadid_np.c Avoid conflicts with libc symbols in libthr jump table. 2019-07-31 19:27:20 +00:00
thr_info.c Add pthread_getname_np() and pthread_setname_np() aliases for 2020-06-10 22:13:24 +00:00
thr_init.c libthr: extract code to get main stack base and size into helpers 2022-09-16 23:24:12 +03:00
thr_join.c Add pthread_peekjoin_np(3). 2020-02-15 23:25:39 +00:00
thr_kern.c Use the existing page size in libthr 2022-05-03 11:04:06 +01:00
thr_kill.c Avoid conflicts with libc symbols in libthr jump table. 2019-07-31 19:27:20 +00:00
thr_list.c Fix initial exec TLS mode for dynamically loaded shared objects. 2019-03-29 17:52:57 +00:00
thr_main_np.c Avoid conflicts with libc symbols in libthr jump table. 2019-07-31 19:27:20 +00:00
thr_malloc.c Remove PAGE_SIZE from libthr 2022-05-03 11:04:41 +01:00
thr_multi_np.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_mutex.c Remove PAGE_SIZE from libthr 2022-05-03 11:04:41 +01:00
thr_mutexattr.c Avoid conflicts with libc symbols in libthr jump table. 2019-07-31 19:27:20 +00:00
thr_once.c Avoid conflicts with libc symbols in libthr jump table. 2019-07-31 19:27:20 +00:00
thr_printf.c libthr: Fix missing break in switch. 2018-01-27 22:27:55 +00:00
thr_private.h libthr: extract code to get main stack base and size into helpers 2022-09-16 23:24:12 +03:00
thr_pshared.c libthr pshared: correct a bug in allocation 2023-02-02 00:59:27 +02:00
thr_pspinlock.c Remove PAGE_SIZE from libthr 2022-05-03 11:04:41 +01:00
thr_resume_np.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
thr_rtld.c rtld: make dlerror() thread-local 2021-04-10 17:33:34 +03:00
thr_rwlock.c Remove PAGE_SIZE from libthr 2022-05-03 11:04:41 +01:00
thr_rwlockattr.c POSIX compliance improvements in the pthread(3) functions. 2018-08-18 01:05:38 +00:00
thr_self.c Avoid conflicts with libc symbols in libthr jump table. 2019-07-31 19:27:20 +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 Use sigfastblock(2) for masking signals in libthr. 2020-02-09 12:27:22 +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 Avoid conflicts with libc symbols in libthr jump table. 2019-07-31 19:27:20 +00:00
thr_spinlock.c Use _thr_isthreaded() and _thr_setthreaded() wrappers 2018-11-30 03:02:49 +00:00
thr_stack.c libthr: extract code to get main stack base and size into helpers 2022-09-16 23:24:12 +03: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 libthr: Remove the DTV_OFFSET macro. 2021-12-09 13:15:38 -08:00
thr_syscalls.c libthr: wrap pdfork(2), same as fork(2). 2021-01-11 22:59:52 +02: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