diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-02-19 11:04:36 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-02-19 11:04:36 -0500 |
commit | 19eb13b9a4cf2f787f60b6e2a6d26a6cd7d3ffd2 (patch) | |
tree | c02fa747b1ad7370b689af34f15139cb62fa9863 /src/thread/i386 | |
parent | a49c119276742d7d212fb88f83a8f559ca549e72 (diff) | |
download | musl-19eb13b9a4cf2f787f60b6e2a6d26a6cd7d3ffd2.tar.gz musl-19eb13b9a4cf2f787f60b6e2a6d26a6cd7d3ffd2.tar.xz musl-19eb13b9a4cf2f787f60b6e2a6d26a6cd7d3ffd2.zip |
race condition fix: block all signals before decrementing thread count
the existence of a (kernelspace) thread must never have observable effects after the thread count is decremented. if signals are not blocked, it could end up handling the signal for rsyscall and contributing towards the count of threads which have changed ids, causing a thread to be missed. this could lead to one thread retaining unwanted privilege level. this change may also address other subtle race conditions in application code that uses signals.
Diffstat (limited to 'src/thread/i386')
-rw-r--r-- | src/thread/i386/__unmapself.s | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/src/thread/i386/__unmapself.s b/src/thread/i386/__unmapself.s index 5c674966..bcf6e7fe 100644 --- a/src/thread/i386/__unmapself.s +++ b/src/thread/i386/__unmapself.s @@ -2,15 +2,6 @@ .global __unmapself .type __unmapself,%function __unmapself: - call 1f - .long -1 - .long -1 -1: popl %ecx - xorl %ebx,%ebx - xorl %edx,%edx - movl $8,%esi - movl $175,%eax - int $128 movl $91,%eax movl 4(%esp),%ebx movl 8(%esp),%ecx |