summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/security.h
diff options
context:
space:
mode:
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); }