diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-07-20 14:16:06 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-07-20 14:16:06 +0000 |
commit | 637a1aec8fba084c65b0afea3b49959917aaa253 (patch) | |
tree | 0a32adecd06f0588fa346109a821d5b033f35828 | |
parent | 7bdb64ea18dbae79925d6a5dc69a665e8837982b (diff) | |
download | cygnal-637a1aec8fba084c65b0afea3b49959917aaa253.tar.gz cygnal-637a1aec8fba084c65b0afea3b49959917aaa253.tar.bz2 cygnal-637a1aec8fba084c65b0afea3b49959917aaa253.zip |
* fork.cc (fork): Create local tmp_pathbuf. Explain why.
-rw-r--r-- | winsup/cygwin/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/cygwin/fork.cc | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 54e65d1b0..9e78d09dd 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2009-07-20 Corinna Vinschen <corinna@vinschen.de> + + * fork.cc (fork): Create local tmp_pathbuf. Explain why. + 2009-07-18 Christopher Faylor <me+cygwin@cgf.cx> * exceptions.cc (sig_handle_tty_stop): Set stopsig to SIGCONT when diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index 6911da5cd..cdaaca649 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -580,6 +580,11 @@ fork () { hold_everything held_everything (ischild); + /* This tmp_pathbuf constructor is required here because the below setjmp + magic will otherwise not restore the original buffer count values in + the thread-local storage. A process forking too deeply will run into + the problem to be out of temporary TLS path buffers. */ + tmp_pathbuf tp; if (!held_everything) { |