aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2021-11-04 21:48:45 +0100
committerCorinna Vinschen <corinna@vinschen.de>2021-11-04 21:52:35 +0100
commit55dd0676ce50391ed0ee29c630925dd5a0c7123c (patch)
tree0e37dfa2968caf407f6a9b8437df734404d5d5b1
parente37bfc8ba1b619fc666715cae9aaf5cbe35b14d0 (diff)
downloadnewlib-55dd0676ce50391ed0ee29c630925dd5a0c7123c.zip
newlib-55dd0676ce50391ed0ee29c630925dd5a0c7123c.tar.gz
newlib-55dd0676ce50391ed0ee29c630925dd5a0c7123c.tar.bz2
Cygwin: fix permission problem when writing DAC info on Samba shares
Cygwin always requests FILE_WRITE_ATTRIBUTES permissions when trying to change DAC information. This can lead to permission problems when trying to chmod/chown files on Samba shares. Drop requesting FILE_WRITE_ATTRIBUTES on Samba shares and go with WRITE_DAC/WRITE_OWNER only. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/cygwin/fhandler.cc6
-rw-r--r--winsup/cygwin/release/3.3.22
2 files changed, 6 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc
index 36862c7..2a07e6c 100644
--- a/winsup/cygwin/fhandler.cc
+++ b/winsup/cygwin/fhandler.cc
@@ -561,10 +561,12 @@ fhandler_base::open (int flags, mode_t mode)
access = READ_CONTROL | FILE_READ_ATTRIBUTES;
break;
case query_write_control:
- access = READ_CONTROL | WRITE_OWNER | WRITE_DAC | FILE_WRITE_ATTRIBUTES;
+ access = READ_CONTROL | WRITE_OWNER | WRITE_DAC
+ | (pc.fs_is_samba () ? 0 : FILE_WRITE_ATTRIBUTES);
break;
case query_write_dac:
- access = READ_CONTROL | WRITE_DAC | FILE_WRITE_ATTRIBUTES;
+ access = READ_CONTROL | WRITE_DAC
+ | (pc.fs_is_samba () ? 0 : FILE_WRITE_ATTRIBUTES);
break;
case query_write_attributes:
access = READ_CONTROL | FILE_WRITE_ATTRIBUTES;
diff --git a/winsup/cygwin/release/3.3.2 b/winsup/cygwin/release/3.3.2
index 548c6a6..263c3ef 100644
--- a/winsup/cygwin/release/3.3.2
+++ b/winsup/cygwin/release/3.3.2
@@ -6,3 +6,5 @@ Bug Fixes
- Fix a float rounding issue in newlib.
Addresses: https://sourceware.org/pipermail/newlib/2021/018626.html
+
+- Fix a permission problem when writing ACLs on Samba.