aboutsummaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2003-08-19 00:31:56 +0000
committerChristopher Faylor <me@cgf.cx>2003-08-19 00:31:56 +0000
commit372cd2cbe6f3dd94771966d082d2cadc7a08e095 (patch)
treed6e1780ab783e128b1c85a74a94ad88d2e358dcd /winsup
parent9d7f26eaf41871fafe9b279b134126d00d59c86f (diff)
downloadnewlib-372cd2cbe6f3dd94771966d082d2cadc7a08e095.zip
newlib-372cd2cbe6f3dd94771966d082d2cadc7a08e095.tar.gz
newlib-372cd2cbe6f3dd94771966d082d2cadc7a08e095.tar.bz2
* exceptions.cc (sigdelayed): Fix race where signal handler could get the wrong
mask.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/exceptions.cc4
2 files changed, 7 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 3685cda..6e7ca49 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2003-08-18 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * exceptions.cc (sigdelayed): Fix race where signal handler could get
+ the wrong mask.
+
2003-08-18 Christopher Faylor <cgf@redhat.com>
* path.cc (mount): Add null/empty check for input parameters.
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index e7c3041..b330a29 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -1271,11 +1271,11 @@ _sigdelayed0: \n\
call _reset_signal_arrived@0 \n\
pushl %5 # signal number \n\
pushl %7 # newmask \n\
+ \n\
+ call _set_process_mask@4 \n\
movl $0,%0 # zero the signal number as a \n\
# flag to the signal handler thread\n\
# that it is ok to set up sigsave\n\
- \n\
- call _set_process_mask@4 \n\
popl %%eax \n\
jmp *%%eax \n\
__no_sig_end: \n\