diff options
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index b549f9530..0be393a46 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -384,6 +384,9 @@ _write (int fd, const void *ptr, size_t len) myself->process_state |= PID_TTYOU; res = cfd->write (ptr, len); myself->process_state &= ~PID_TTYOU; + if (res && get_errno () == EACCES && + !(cfd->get_flags () & (O_WRONLY | O_RDWR))) + set_errno (EBADF); } done: |