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>2008-05-23 01:03:54 +0400
committerCorinna Vinschen <corinna@vinschen.de>2008-05-23 01:03:54 +0400
commit2122048bd623b843123420c01d357c521039f23f (patch)
treefb98bf82e4585f1fda70032946e456b6f96f7ff9
parentc15121a287a2dbb59fdfe6b22ca6866f94f77f0a (diff)
* grp.cc (internal_getgroups): Don't add deny-only groups to the group
list.
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/grp.cc6
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;