diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2007-01-07 12:44:10 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2007-01-07 12:44:10 +0000 |
commit | 6bcc8fd7b1406ec6b5240f1137e0907b28da4f87 (patch) | |
tree | c11d5da074c3ad489373fe2984c4e9d0948510ed /winsup/cygwin/fhandler_disk_file.cc | |
parent | 7ce031f2117085127359d12c518e594ecd7deca8 (diff) | |
download | cygnal-6bcc8fd7b1406ec6b5240f1137e0907b28da4f87.tar.gz cygnal-6bcc8fd7b1406ec6b5240f1137e0907b28da4f87.tar.bz2 cygnal-6bcc8fd7b1406ec6b5240f1137e0907b28da4f87.zip |
* security.h (setacl): Add parameter for writability flag.
* sec_acl.cc (setacl): Ditto. Set to true if any ACE with write
permissions is created.
* fhandler_disk_file.cc (fhandler_disk_file::facl): Reset
FILE_ATTRIBUTE_READONLY if ACL contains an ACE with write permissions.
Diffstat (limited to 'winsup/cygwin/fhandler_disk_file.cc')
-rw-r--r-- | winsup/cygwin/fhandler_disk_file.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index 15f39e42f..43aeff6b4 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -746,7 +746,12 @@ fhandler_disk_file::facl (int cmd, int nentries, __aclent32_t *aclbufp) { case SETACL: if (!aclsort32 (nentries, 0, aclbufp)) - res = setacl (get_io_handle (), pc, nentries, aclbufp); + { + bool rw = false; + res = setacl (get_io_handle (), pc, nentries, aclbufp, rw); + if (rw) + SetFileAttributes (pc, (DWORD) pc & ~FILE_ATTRIBUTE_READONLY); + } break; case GETACL: if (!aclbufp) |