diff options
Diffstat (limited to 'winsup/cygwin/fhandler_disk_file.cc')
-rw-r--r-- | winsup/cygwin/fhandler_disk_file.cc | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index 81b274f3e..c68b42687 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -553,13 +553,12 @@ fhandler_base::fstat_helper (struct __stat64 *buf, { buf->st_mode |= STD_RBITS; - if (!::has_attribute (dwFileAttributes, FILE_ATTRIBUTE_READONLY) - && !pc.isdir () && !pc.issymlink ()) + if (!::has_attribute (dwFileAttributes, FILE_ATTRIBUTE_READONLY)) buf->st_mode |= STD_WBITS; /* | S_IWGRP | S_IWOTH; we don't give write to group etc */ - if (S_ISDIR (buf->st_mode)) - buf->st_mode |= S_IFDIR | STD_XBITS; + if (pc.isdir ()) + buf->st_mode |= S_IFDIR | STD_WBITS | STD_XBITS; else if (buf->st_mode & S_IFMT) /* nothing */; else if (is_fs_special ()) |