There's a very small window of vulnerability in _sigbe, which can lead to signal handlers not being executed. In _sigbe, the _cygtls lock is released before incyg is decremented. If setup_handler acquires the lock just after _sigbe releases it, but before incyg is decremented, setup_handler will mistakenly believe that the thread is in Cygwin code, and will set up the interrupt using the tls stack. _sigbe should decrement incyg before releasing the lock.
--------- Ernie Coskrey SteelEye Technology, Inc.
gendef.diff
Description: gendef.diff
