Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-04-20 19:50:03 +0400
committerChristopher Faylor <me@cgf.cx>2001-04-20 19:50:03 +0400
commitcdcfe4e8e9d71c9b0d18029baac6f2fb167afc21 (patch)
treee5d8c49cf3154099f6ba57fa40c945b59f15fa9e /winsup/cygwin/dtable.cc
parentbfbc1aecdca4f960234d3eb9e524b22fe6573f02 (diff)
* include/sys/file.h: Move X_OK protection earlier.
* dtable.cc (dtable::vfork_child_fixup): Avoid closing already closed handles.
Diffstat (limited to 'winsup/cygwin/dtable.cc')
-rw-r--r--winsup/cygwin/dtable.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc
index b5f9a9136..88c3adced 100644
--- a/winsup/cygwin/dtable.cc
+++ b/winsup/cygwin/dtable.cc
@@ -580,9 +580,14 @@ dtable::vfork_child_fixup ()
for (int i = 0; i < (int) cygheap->fdtab.size; i++)
if ((fh = cygheap->fdtab[i]) != NULL)
{
- fh->close ();
fh->clear_readahead ();
- cygheap->fdtab.release (i);
+ if (fh->get_close_on_exec ())
+ release (i);
+ else
+ {
+ fh->close ();
+ cygheap->fdtab.release (i);
+ }
}
fds = saveme;