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>2005-04-06 16:35:52 +0400
committerCorinna Vinschen <corinna@vinschen.de>2005-04-06 16:35:52 +0400
commitb62b8d7c8086626f09f699e278d604ac0c8fe9a3 (patch)
tree84ea779b02926b6a1f9a7c2248201d11c326716a /winsup/cygwin/security.h
parentdafef5e249a5ddd5e9a935b802e5e61e4cc8aaa9 (diff)
* security.h (cygsidlist::addfromgr): Avoid duplicate entries.
* grp.cc (initgrousp): Add syscall_printf. (setgroups): Add syscall_printf and make sure sids are added only once.
Diffstat (limited to 'winsup/cygwin/security.h')
-rw-r--r--winsup/cygwin/security.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/winsup/cygwin/security.h b/winsup/cygwin/security.h
index 0ee8e7134..1c95d30b3 100644
--- a/winsup/cygwin/security.h
+++ b/winsup/cygwin/security.h
@@ -148,7 +148,8 @@ public:
BOOL add (const char *sidstr)
{ cygsid nsi (sidstr); return add (nsi); }
BOOL addfromgr (struct __group32 *gr) /* Only with alloc */
- { return sids[count++].getfromgr (gr); }
+ { return sids[count].getfromgr (gr)
+ && (contains (sids[count]) || ++count); }
BOOL operator+= (cygsid &si) { return add (si); }
BOOL operator+= (const char *sidstr) { return add (sidstr); }