]> git.ipfire.org Git - thirdparty/glibc.git/commit
Clear list of acquired robust mutexes in the child process after forking.
authorTorvald Riegel <triegel@redhat.com>
Wed, 21 Dec 2016 12:37:19 +0000 (13:37 +0100)
committerTorvald Riegel <triegel@redhat.com>
Fri, 13 Jan 2017 16:17:38 +0000 (17:17 +0100)
commit8e31cafb268938729a1314806a924d73fb1991c5
treed58fa0d10a2a6eff2e8f3a5a775fa4fa1abdf271
parent65810f0ef05e8c9e333f17a44e77808b163ca298
Clear list of acquired robust mutexes in the child process after forking.

Robust mutexes acquired at the time of a call to fork() do not remain
acquired by the forked child process.  We have to clear the list of
acquired robust mutexes before registering this list with the kernel;
otherwise, if some of the robust mutexes are process-shared, the parent
process can alter the child's robust mutex list, which can lead to
deadlocks or even modification of memory that may not be occupied by a
mutex anymore.

[BZ #19402]
* sysdeps/nptl/fork.c (__libc_fork): Clear list of acquired robust
mutexes.
ChangeLog
sysdeps/nptl/fork.c