summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2000-03-17 17:22:53 +0000
committerCorinna Vinschen <corinna@vinschen.de>2000-03-17 17:22:53 +0000
commit2be36bd9c4bd7fa7e73821fe902f036f86ab0d0f (patch)
tree0c91a7342fd58db131989a4be81384eaa5fcfecb /winsup/cygwin/fhandler.cc
parentaf792540a69c8d9551d4aa2f85aa3ee7258d84d3 (diff)
downloadcygnal-2be36bd9c4bd7fa7e73821fe902f036f86ab0d0f.tar.gz
cygnal-2be36bd9c4bd7fa7e73821fe902f036f86ab0d0f.tar.bz2
cygnal-2be36bd9c4bd7fa7e73821fe902f036f86ab0d0f.zip
* fhandler.cc (fhandler_base::open): Call set_file_attribute() only if a file is really created.
Diffstat (limited to 'winsup/cygwin/fhandler.cc')
-rw-r--r--winsup/cygwin/fhandler.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc
index 2aba80d7f..d33b60c8c 100644
--- a/winsup/cygwin/fhandler.cc
+++ b/winsup/cygwin/fhandler.cc
@@ -340,7 +340,9 @@ fhandler_base::open (int flags, mode_t mode)
goto done;
}
- if (flags & O_CREAT && get_device () == FH_DISK)
+ // Attributes may be set only if a file is _really_ created.
+ if (flags & O_CREAT && get_device () == FH_DISK
+ && GetLastError () != ERROR_ALREADY_EXISTS)
set_file_attribute (has_acls (), get_win32_name (), mode);
namehash_ = hash_path_name (0, get_win32_name ());