diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2010-09-24 16:22:53 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2010-09-24 16:22:53 +0000 |
commit | 7438a10a019106738bbec980454a2da738d430ef (patch) | |
tree | ba5dafa914f47e5738037945d3f7699845070daf | |
parent | 3498f76deb52fcff5c4f8d20050ec844608d108d (diff) | |
download | newlib-7438a10a019106738bbec980454a2da738d430ef.zip newlib-7438a10a019106738bbec980454a2da738d430ef.tar.gz newlib-7438a10a019106738bbec980454a2da738d430ef.tar.bz2 |
* fhandler.cc (fhandler_base::open): Handle query_write_dac flag.
* fhandler.h (enum query_state): Add query_write_dac flag.
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Open file
with query_write_dac instead of query_write_control.
-rw-r--r-- | winsup/cygwin/ChangeLog | 7 | ||||
-rw-r--r-- | winsup/cygwin/fhandler.cc | 3 | ||||
-rw-r--r-- | winsup/cygwin/fhandler.h | 3 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_disk_file.cc | 2 |
4 files changed, 13 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 1d3797a..ee1fc5a 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,12 @@ 2010-09-24 Corinna Vinschen <corinna@vinschen.de> + * fhandler.cc (fhandler_base::open): Handle query_write_dac flag. + * fhandler.h (enum query_state): Add query_write_dac flag. + * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Open file + with query_write_dac instead of query_write_control. + +2010-09-24 Corinna Vinschen <corinna@vinschen.de> + * errno.cc (errmap): Map ERROR_BAD_NET_RESP to ENOSYS. * fhandler_disk_file.cc (fhandler_disk_file::facl): Handle ENOSYS and point to the explanation. diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 64451f6..ce5f79b 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -479,6 +479,9 @@ fhandler_base::open (int flags, mode_t mode) case query_write_control: access = READ_CONTROL | WRITE_OWNER | WRITE_DAC | FILE_WRITE_ATTRIBUTES; break; + case query_write_dac: + access = READ_CONTROL | WRITE_DAC | FILE_WRITE_ATTRIBUTES; + break; case query_write_attributes: access = READ_CONTROL | FILE_WRITE_ATTRIBUTES; break; diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index 8e232f0..5110d6d 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -92,7 +92,8 @@ enum query_state { query_read_control = 1, query_read_attributes = 2, query_write_control = 3, - query_write_attributes = 4 + query_write_dac = 4, + query_write_attributes = 5 }; enum del_lock_called_from { diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index 3cb8311..85be07c 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -799,7 +799,7 @@ fhandler_disk_file::fchmod (mode_t mode) if (!get_handle ()) { - query_open (query_write_control); + query_open (query_write_dac); if (!(oret = open (O_BINARY, 0))) { /* Need WRITE_DAC|WRITE_OWNER to write ACLs. */ |