summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/syscalls.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-10-31 00:55:32 +0000
committerChristopher Faylor <me@cgf.cx>2001-10-31 00:55:32 +0000
commit6ea0c04e7ca613dbf28b5f913fe2d6f84ee7cbfc (patch)
treec5ade0236415b305758f548b1b61990e4ba36ca9 /winsup/cygwin/syscalls.cc
parent39374014e7f1a260ee6f20f6724e67ebb75fb172 (diff)
downloadcygnal-6ea0c04e7ca613dbf28b5f913fe2d6f84ee7cbfc.tar.gz
cygnal-6ea0c04e7ca613dbf28b5f913fe2d6f84ee7cbfc.tar.bz2
cygnal-6ea0c04e7ca613dbf28b5f913fe2d6f84ee7cbfc.zip
* cygheap.h (cygheap_fdmanip::cygheap_fdmanip): Clear fh.
(cygheap_fdmanip::isopen): New method. * syscalls.cc (_read): Avoid accessing closed fd. * path.h (fe_types): New enum. (path_conv::set_path): New method. (find_exec): Change null_if_not_found argument to something more generic. * spawn.cc (find_exec): Default to returning the POSIX path rather than the windows path, unless instructed otherwise. (spawn_guts): Force call to find_exec to use native paths. * dlfcn.cc (check_path_access): Accommodate new find_exec arguments. * environ.h (win_env::get_posix): New method.
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r--winsup/cygwin/syscalls.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 637ecaf90..57eb51cd2 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -322,6 +322,9 @@ _read (int fd, void *ptr, size_t len)
goto out;
}
+ if (!cfd.isopen())
+ return -1;
+
/* Check to see if this is a background read from a "tty",
sending a SIGTTIN, if appropriate */
res = cfd->bg_check (SIGTTIN);