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>2002-01-06 20:29:41 +0300
committerChristopher Faylor <me@cgf.cx>2002-01-06 20:29:41 +0300
commit10dedaaa4c128cf40419e8a42418ed8a223b9a70 (patch)
tree9adfc142cb0fec006bf88e830d1dc95630bec8f3 /winsup/cygwin/dtable.cc
parentd7e7027d128595fe671c3ce175cdb07e5c69906b (diff)
* dtable.cc (dtable::init_std_file_from_handle): Add some defensive code to
invalid handle case.
Diffstat (limited to 'winsup/cygwin/dtable.cc')
-rw-r--r--winsup/cygwin/dtable.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc
index a6f5b075c..e7e9fd252 100644
--- a/winsup/cygwin/dtable.cc
+++ b/winsup/cygwin/dtable.cc
@@ -91,8 +91,8 @@ dtable::extend (int howmuch)
}
/* Initialize the file descriptor/handle mapping table.
- We only initialize the parent table here. The child table is
- initialized at each fork () call. */
+ This function should only be called when a cygwin function is invoked
+ by a non-cygwin function, i.e., it should only happen very rarely. */
void
stdio_init (void)
@@ -197,7 +197,10 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle, DWORD myaccess)
first_fd_for_open = 0;
if (!handle || handle == INVALID_HANDLE_VALUE)
- return;
+ {
+ fds[fd] = NULL;
+ return;
+ }
if (__fmode)
bin = __fmode;