diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2016-01-28 16:34:11 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2016-01-28 16:34:11 +0300 |
commit | a16ab1751c64557b46945d4c093b8977c0584327 (patch) | |
tree | b94f9c3c95ff543134a10a6d8799d92f014ac434 /winsup/cygwin/sec_acl.cc | |
parent | 69f4c4029183fb26d2fcae00790881620c1978a3 (diff) |
get_posix_access: Fix primary group handing when multiple ACEs exist
Handle additional ACE for primary group only as another GROUP
entry if it's an allow ACE. Deny ACEs don't qualify.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/sec_acl.cc')
-rw-r--r-- | winsup/cygwin/sec_acl.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/winsup/cygwin/sec_acl.cc b/winsup/cygwin/sec_acl.cc index 51003c4d0..be5442336 100644 --- a/winsup/cygwin/sec_acl.cc +++ b/winsup/cygwin/sec_acl.cc @@ -829,10 +829,12 @@ get_posix_access (PSECURITY_DESCRIPTOR psd, else if (type == GROUP_OBJ) { /* Same for the primary group. */ - if (saw_group_obj) - type = GROUP; if (ace->Header.AceType == ACCESS_ALLOWED_ACE_TYPE) - saw_group_obj = true; + { + if (saw_group_obj) + type = GROUP; + saw_group_obj = true; + } } if ((pos = searchace (lacl, MAX_ACL_ENTRIES, type, id)) >= 0) { |