diff options
author | Christopher Faylor <me@cgf.cx> | 2003-08-19 00:31:56 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2003-08-19 00:31:56 +0000 |
commit | 372cd2cbe6f3dd94771966d082d2cadc7a08e095 (patch) | |
tree | d6e1780ab783e128b1c85a74a94ad88d2e358dcd | |
parent | 9d7f26eaf41871fafe9b279b134126d00d59c86f (diff) | |
download | newlib-372cd2cbe6f3dd94771966d082d2cadc7a08e095.zip newlib-372cd2cbe6f3dd94771966d082d2cadc7a08e095.tar.gz newlib-372cd2cbe6f3dd94771966d082d2cadc7a08e095.tar.bz2 |
* exceptions.cc (sigdelayed): Fix race where signal handler could get the wrong
mask.
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/exceptions.cc | 4 |
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\ |