https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=b5fe9309b27a3ee0e208738a41cabf83343a326d

commit b5fe9309b27a3ee0e208738a41cabf83343a326d
Author: Corinna Vinschen <cori...@vinschen.de>
Date:   Fri Oct 30 17:21:30 2015 +0100

    Avoid double unlock of TLS mutex
    
        * exceptions.cc (sigpacket::process): Avoid potentially double unlocking
        the TLS mutex.
    
    Signed-off-by: Corinna Vinschen <cori...@vinschen.de>

Diff:
---
 winsup/cygwin/ChangeLog     | 5 +++++
 winsup/cygwin/exceptions.cc | 5 +----
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index b4b0f69..255d795 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
 2015-10-30  Corinna Vinschen  <cori...@vinschen.de>
 
+       * exceptions.cc (sigpacket::process): Avoid potentially double unlocking
+       the TLS mutex.
+
+2015-10-30  Corinna Vinschen  <corinna@vinschen.d>
+
        * signal.cc (sigwait): Fix return value to reflect errno in case of
        error according to POSIX.  Never return EINTR.
        * thread.cc (pthread_kill): Return errno if sig_send failed.
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 60f09d6..9119a8c 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -1475,10 +1475,7 @@ sigpacket::process ()
          else if (!sigismember (&tls->sigmask, si.si_signo))
            issig_wait = false;
          else
-           {
-             cygheap->unlock_tls (tl_entry);
-             tls = NULL;
-           }
+           tls = NULL;
        }
     }

Reply via email to