public inbox for cygwin-cvs@sourceware.org
help / color / mirror / Atom feed
* [newlib-cygwin/main] Cygwin: mkdir: use correct default permissions filtered by umask
@ 2023-02-09 21:01 Corinna Vinschen
0 siblings, 0 replies; only message in thread
From: Corinna Vinschen @ 2023-02-09 21:01 UTC (permalink / raw)
To: cygwin-cvs
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=283583c5f24000dc4a5872725d21c4313d13350f
commit 283583c5f24000dc4a5872725d21c4313d13350f
Author: Corinna Vinschen <corinna@vinschen.de>
AuthorDate: Thu Feb 9 21:25:03 2023 +0100
Commit: Corinna Vinschen <corinna@vinschen.de>
CommitDate: Thu Feb 9 21:58:07 2023 +0100
Cygwin: mkdir: use correct default permissions filtered by umask
Older coreutils created directories with mode bits filtered through
umask. Newer coreutils creates directories with full permissions,
0777 by default.
This new coreutils behaviour uncovered the fact that default ACEs for
newly created directories were not filtered by umask starting with
commit bc444e5aa4ca.
Fix it by applying umask on the default ACEs.
Fixes: bc444e5aa4ca ("Reapply POSIX ACL change.")
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diff:
---
winsup/cygwin/release/3.4.6 | 3 +++
winsup/cygwin/sec/base.cc | 8 +++++---
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/winsup/cygwin/release/3.4.6 b/winsup/cygwin/release/3.4.6
index c21c44fbf55a..f9288dc79994 100644
--- a/winsup/cygwin/release/3.4.6
+++ b/winsup/cygwin/release/3.4.6
@@ -6,3 +6,6 @@ Addresses: https://cygwin.com/pipermail/cygwin/2023-January/252916.html
Don't reject valid server and share names when mounting.
Addresses: https://cygwin.com/pipermail/cygwin/2023-January/252928.html
+
+Create directories with correctly umask-filtered default ACEs.
+Addresses: https://cygwin.com/pipermail/cygwin/2023-February/253037.html
diff --git a/winsup/cygwin/sec/base.cc b/winsup/cygwin/sec/base.cc
index dc85ca72acbe..e84bc2aee7f1 100644
--- a/winsup/cygwin/sec/base.cc
+++ b/winsup/cygwin/sec/base.cc
@@ -495,23 +495,25 @@ set_created_file_access (HANDLE handle, path_conv &pc, mode_t attr)
S_ISGID bit is set, propagate it. */
if (S_ISDIR (attr))
{
+ mode_t def_attr = attr & ~cygheap->umask;
+
if (searchace (aclp, nentries, DEF_USER_OBJ) < 0)
{
aclp[nentries].a_type = DEF_USER_OBJ;
aclp[nentries].a_id = ILLEGAL_UID;
- aclp[nentries++].a_perm = (attr >> 6) & S_IRWXO;
+ aclp[nentries++].a_perm = (def_attr >> 6) & S_IRWXO;
}
if (searchace (aclp, nentries, DEF_GROUP_OBJ) < 0)
{
aclp[nentries].a_type = DEF_GROUP_OBJ;
aclp[nentries].a_id = ILLEGAL_GID;
- aclp[nentries++].a_perm = (attr >> 3) & S_IRWXO;
+ aclp[nentries++].a_perm = (def_attr >> 3) & S_IRWXO;
}
if (searchace (aclp, nentries, DEF_OTHER_OBJ) < 0)
{
aclp[nentries].a_type = DEF_OTHER_OBJ;
aclp[nentries].a_id = ILLEGAL_UID;
- aclp[nentries++].a_perm = attr & S_IRWXO;
+ aclp[nentries++].a_perm = def_attr & S_IRWXO;
}
if (attr_rd & S_ISGID)
attr |= S_ISGID;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-02-09 21:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-09 21:01 [newlib-cygwin/main] Cygwin: mkdir: use correct default permissions filtered by umask Corinna Vinschen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).