Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2016-01-28 16:34:11 +0300
committerCorinna Vinschen <corinna@vinschen.de>2016-01-28 16:34:11 +0300
commita16ab1751c64557b46945d4c093b8977c0584327 (patch)
treeb94f9c3c95ff543134a10a6d8799d92f014ac434 /winsup/cygwin/sec_acl.cc
parent69f4c4029183fb26d2fcae00790881620c1978a3 (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.cc8
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)
{