summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/dtable.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2008-02-07 18:59:40 +0000
committerCorinna Vinschen <corinna@vinschen.de>2008-02-07 18:59:40 +0000
commit4248960e2f39e9913dc71da085883ee76a30b1e9 (patch)
tree893cdbe10af13e4d56101e1206de81a7e8c6a021 /winsup/cygwin/dtable.cc
parent62688407cbb3e8db6cf683046989deac42e3058e (diff)
downloadcygnal-4248960e2f39e9913dc71da085883ee76a30b1e9.tar.gz
cygnal-4248960e2f39e9913dc71da085883ee76a30b1e9.tar.bz2
cygnal-4248960e2f39e9913dc71da085883ee76a30b1e9.zip
* dtable.cc (dtable::init_std_file_from_handle): Set access to
read/write of handle is connected to a tty or console. * fhandler_dsp.cc (fhandler_dev_dsp::dup): Set open flags correctly after duplicating from archetype. * fhandler_tty.cc (fhandler_tty_slave::dup): Ditto. (fhandler_pty_master::dup): Ditto.
Diffstat (limited to 'winsup/cygwin/dtable.cc')
-rw-r--r--winsup/cygwin/dtable.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc
index 6fcf7086e..62606693c 100644
--- a/winsup/cygwin/dtable.cc
+++ b/winsup/cygwin/dtable.cc
@@ -336,7 +336,9 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle)
}
DWORD access;
- if (fd == 0)
+ if (dev == FH_TTY || dev == FH_CONSOLE)
+ access = GENERIC_READ | GENERIC_WRITE;
+ else if (fd == 0)
access = GENERIC_READ;
else
access = GENERIC_WRITE; /* Should be rdwr for stderr but not sure that's