https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=97c3835a0301dba7148348d1569151cf00deb617

commit 97c3835a0301dba7148348d1569151cf00deb617
Author:     Corinna Vinschen <[email protected]>
AuthorDate: Wed Jan 15 11:01:11 2025 +0100
Commit:     Corinna Vinschen <[email protected]>
CommitDate: Wed Jan 15 12:27:03 2025 +0100

    Cygwin: get_posix_access: accomodate owner==group in default:group perms
    
    When generating a default:group (Windows: CREATOR GROUP) ACL entry,
    make sure to copy over user perms to the new default group entry.
    
    Fixes: bc444e5aa4ca ("Reapply POSIX ACL changes.")
    Signed-off-by: Corinna Vinschen <[email protected]>

Diff:
---
 winsup/cygwin/sec/acl.cc | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/winsup/cygwin/sec/acl.cc b/winsup/cygwin/sec/acl.cc
index 77d24a2b17cf..a73fae3389ed 100644
--- a/winsup/cygwin/sec/acl.cc
+++ b/winsup/cygwin/sec/acl.cc
@@ -1069,6 +1069,9 @@ get_posix_access (PSECURITY_DESCRIPTOR psd,
          lacl[pos].a_type = DEF_GROUP_OBJ;
          lacl[pos].a_id = gid;
          lacl[pos].a_perm = lacl[1].a_perm;
+         /* If owner == group, the owner perms should be used. */
+         if (owner_eq_group)
+           lacl[pos].a_perm |= lacl[0].a_perm;
          /* Note the position of the DEF_GROUP_OBJ entry. */
          def_pgrp_pos = pos;
          aclsid[pos] = well_known_creator_group_sid;

Reply via email to