summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/grp.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2008-05-22 21:03:54 +0000
committerCorinna Vinschen <corinna@vinschen.de>2008-05-22 21:03:54 +0000
commit2122048bd623b843123420c01d357c521039f23f (patch)
treefb98bf82e4585f1fda70032946e456b6f96f7ff9 /winsup/cygwin/grp.cc
parentc15121a287a2dbb59fdfe6b22ca6866f94f77f0a (diff)
downloadcygnal-2122048bd623b843123420c01d357c521039f23f.tar.gz
cygnal-2122048bd623b843123420c01d357c521039f23f.tar.bz2
cygnal-2122048bd623b843123420c01d357c521039f23f.zip
* grp.cc (internal_getgroups): Don't add deny-only groups to the group
list.
Diffstat (limited to 'winsup/cygwin/grp.cc')
-rw-r--r--winsup/cygwin/grp.cc6
1 files changed, 4 insertions, 2 deletions
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;