Files
semi-libc/src/process
Samuel HollandandRich Felker 84ebec6cee fix deadlock in synccall after threaded fork
synccall may be called by AS-safe functions such as setuid/setgid after
fork. although fork() resets libc.threads_minus_one, causing synccall to
take the single-threaded path, synccall still takes the thread list
lock. This lock may be held by another thread if for example fork()
races with pthread_create(). After fork(), the value of the lock is
meaningless, so clear it.

maintainer's note: commit 8f11e6127f and
e4235d7067 introduced this regression.
the state protected by this lock is the linked list, which is entirely
replaced in the child path of fork (next=prev=self), so resetting it
is semantically sound.
2019-07-01 10:10:52 -04:00
..
2018-09-12 14:34:37 -04:00
2018-09-12 14:34:37 -04:00
2018-09-12 14:34:37 -04:00
2018-09-12 14:34:37 -04:00
2018-09-12 14:34:37 -04:00
2018-09-12 14:34:37 -04:00
2011-02-12 00:22:29 -05:00
2018-09-12 14:34:37 -04:00
2018-09-12 14:34:37 -04:00
2011-02-12 00:22:29 -05:00
2018-09-12 14:34:37 -04:00
2018-09-12 14:34:37 -04:00