fix extremely rare but dangerous race condition in robust mutexes
authorRich Felker <dalias@aerifal.cx>
Fri, 17 Aug 2012 21:13:53 +0000 (17:13 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 17 Aug 2012 21:13:53 +0000 (17:13 -0400)
commitda8d0fc4fa3490f418a438b7e0830f9af312d41f
tree2faddbd4253ce4cc0ef9f9216fce451d2f9b9c47
parent11458e5b098319cf3e2d05c8cbaa74d58db740e3
fix extremely rare but dangerous race condition in robust mutexes

if new shared mappings of files/devices/shared memory can be made
between the time a robust mutex is unlocked and its subsequent removal
from the pending slot in the robustlist header, the kernel can
inadvertently corrupt data in the newly-mapped pages when the process
terminates. i am fixing the bug by using the same global vm lock
mechanism that was used to fix the race condition with unmapping
barriers after pthread_barrier_wait returns.
src/thread/pthread_barrier_wait.c
src/thread/pthread_mutex_unlock.c
src/thread/vmlock.c [new file with mode: 0644]