mirror of
https://github.com/opnsense/src.git
synced 2026-06-05 06:42:56 -04:00
Otherwise the lock upgrade performed by rtld's load_filtees() can result
in infinite recursion, wherein:
1. _rtld_bind() acquires the bind read lock,
2. the source DSO's filtees haven't been loaded yet, so the lock upgrade
in load_filtees() cause rtld to jump to _rtld_bind() and release the
bind lock,
3. _thr_rtld_lock_release() calls _thr_ast(), which calls thr_wake(),
which hasn't been resolved yet,
4. _rtld_bind() acquires the bind read lock in order to resolve
thr_wake(),
5. ...
See the linked pull request for an instance of this problem arising with
libsys. That particular instance is also worked around by commit
|
||
|---|---|---|
| .. | ||
| arch | ||
| sys | ||
| tests | ||
| thread | ||
| libthr.3 | ||
| Makefile | ||
| Makefile.depend | ||
| plockstat.d | ||
| pthread.map | ||