git: cee16ae06de7 - stable/13 - rtld: unlock bind lock when calling into crt __pthread_distribute_static_tls method
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 27 Aug 2023 00:51:27 UTC
The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=cee16ae06de7c08cf97c918d73cfac33cc056a2d commit cee16ae06de7c08cf97c918d73cfac33cc056a2d Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-08-18 19:52:24 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-08-27 00:50:17 +0000 rtld: unlock bind lock when calling into crt __pthread_distribute_static_tls method (cherry picked from commit b1d3e2b771552af071bf0964233cc5a76ea25542) --- libexec/rtld-elf/rtld.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index e3f87c6504a5..e8b901bda634 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -5943,8 +5943,10 @@ distribute_static_tls(Objlist *list, RtldLockState *lockstate) obj = elm->obj; if (obj->marker || !obj->tls_static || obj->static_tls_copied) continue; + lock_release(rtld_bind_lock, lockstate); distrib(obj->tlsoffset, obj->tlsinit, obj->tlsinitsize, obj->tlssize); + wlock_acquire(rtld_bind_lock, lockstate); obj->static_tls_copied = true; } }