diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2008-05-23 01:03:54 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2008-05-23 01:03:54 +0400 |
commit | 2122048bd623b843123420c01d357c521039f23f (patch) | |
tree | fb98bf82e4585f1fda70032946e456b6f96f7ff9 | |
parent | c15121a287a2dbb59fdfe6b22ca6866f94f77f0a (diff) |
* grp.cc (internal_getgroups): Don't add deny-only groups to the group
list.
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/grp.cc | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index f38927840..5f68f3b72 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 2008-05-22 Corinna Vinschen <corinna@vinschen.de> + * grp.cc (internal_getgroups): Don't add deny-only groups to the group + list. + +2008-05-22 Corinna Vinschen <corinna@vinschen.de> + * cygtls.h (struct san): Add two int values to store the current tls_pathbuf counters. (return_from_fault): Restore tls_pathbuf counters. diff --git a/winsup/cygwin/grp.cc b/winsup/cygwin/grp.cc index e9e657d88..64423d8fa 100644 --- a/winsup/cygwin/grp.cc +++ b/winsup/cygwin/grp.cc @@ -381,8 +381,10 @@ internal_getgroups (int gidsetsize, __gid32_t *grouplist, cygpsid * srchsid) for (int gidx = 0; (gr = internal_getgrent (gidx)); ++gidx) if (sid.getfromgr (gr)) for (DWORD pg = 0; pg < groups->GroupCount; ++pg) - if (sid == groups->Groups[pg].Sid && - sid != well_known_world_sid) + if (sid == groups->Groups[pg].Sid + && !(groups->Groups[pg].Attributes + & SE_GROUP_USE_FOR_DENY_ONLY) + && sid != well_known_world_sid) { if (cnt < gidsetsize) grouplist[cnt] = gr->gr_gid; |