diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2020-01-29 15:14:05 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2020-01-29 15:14:05 +0100 |
commit | f36262d56ac78f04de147746ce4a85c6155e4a23 (patch) | |
tree | a49836ad4aba6c6339130966afcd2249ae1a627d | |
parent | 13bfb3c63f35d875c1771daea6de4be0176e3b13 (diff) | |
download | newlib-f36262d56ac78f04de147746ce4a85c6155e4a23.zip newlib-f36262d56ac78f04de147746ce4a85c6155e4a23.tar.gz newlib-f36262d56ac78f04de147746ce4a85c6155e4a23.tar.bz2 |
Cygwin: stat: fix st_mode of fifos
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r-- | winsup/cygwin/fhandler_disk_file.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index be45ad7..f362e31 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -480,7 +480,7 @@ fhandler_base::fstat_helper (struct stat *buf) { /* If read-only attribute is set, modify ntsec return value */ if (::has_attribute (attributes, FILE_ATTRIBUTE_READONLY) - && !pc.isdir () && !pc.issymlink ()) + && !pc.isdir () && !pc.issymlink () && !pc.is_fs_special ()) buf->st_mode &= ~(S_IWUSR | S_IWGRP | S_IWOTH); if (buf->st_mode & S_IFMT) @@ -490,7 +490,7 @@ fhandler_base::fstat_helper (struct stat *buf) else { buf->st_dev = buf->st_rdev = dev (); - buf->st_mode = dev ().mode (); + buf->st_mode |= dev ().mode () & S_IFMT; buf->st_size = 0; } } |