From 902716e5992bba1fdab08550e8fa70f6cbfa838b Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 28 Nov 2006 09:57:01 +0000 Subject: * fhandler.cc (fhandler_base::open): Fix previous patch to handle the SYSTEM attribute as well. --- winsup/cygwin/fhandler.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'winsup/cygwin/fhandler.cc') diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 78c070d14..0fc9e6fcc 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -685,10 +685,11 @@ fhandler_base::open (int flags, mode_t mode) file_attributes |= FILE_ATTRIBUTE_HIDDEN; #endif /* Starting with Windows 2000, when trying to overwrite an already - existing file with FILE_ATTRIBUTE_HIDDEN attribute set, CreateFile - fails with "Permission denied". Per MSDN you have to create the - file with the same attributes as already specified for the file. */ - if (exists () && has_attribute (FILE_ATTRIBUTE_HIDDEN)) + existing file with FILE_ATTRIBUTE_HIDDEN and/or FILE_ATTRIBUTE_SYSTEM + attribute set, CreateFile fails with ERROR_ACCESS_DENIED. + Per MSDN you have to create the file with the same attributes as + already specified for the file. */ + if (has_attribute (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM)) file_attributes |= pc.file_attributes (); /* If the file should actually be created and ntsec is on, -- cgit v1.2.3