summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fork.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r--winsup/cygwin/fork.cc5
1 files changed, 5 insertions, 0 deletions
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)
{