From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 70821 invoked by alias); 29 Jan 2020 14:14:17 -0000 Mailing-List: contact cygwin-cvs-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-cvs-owner@cygwin.com Received: (qmail 70757 invoked by uid 9078); 29 Jan 2020 14:14:16 -0000 Date: Wed, 29 Jan 2020 14:14:00 -0000 Message-ID: <20200129141416.70755.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: stat: fix st_mode of fifos X-Act-Checkin: newlib-cygwin X-Git-Author: Corinna Vinschen X-Git-Refname: refs/heads/master X-Git-Oldrev: 13bfb3c63f35d875c1771daea6de4be0176e3b13 X-Git-Newrev: f36262d56ac78f04de147746ce4a85c6155e4a23 X-SW-Source: 2020-q1/txt/msg00043.txt https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=f36262d56ac78f04de147746ce4a85c6155e4a23 commit f36262d56ac78f04de147746ce4a85c6155e4a23 Author: Corinna Vinschen Date: Wed Jan 29 15:14:05 2020 +0100 Cygwin: stat: fix st_mode of fifos Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/fhandler_disk_file.cc | 4 ++-- 1 file 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; } }