diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2005-04-06 12:35:52 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2005-04-06 12:35:52 +0000 |
commit | b62b8d7c8086626f09f699e278d604ac0c8fe9a3 (patch) | |
tree | 84ea779b02926b6a1f9a7c2248201d11c326716a /winsup/cygwin/security.h | |
parent | dafef5e249a5ddd5e9a935b802e5e61e4cc8aaa9 (diff) | |
download | cygnal-b62b8d7c8086626f09f699e278d604ac0c8fe9a3.tar.gz cygnal-b62b8d7c8086626f09f699e278d604ac0c8fe9a3.tar.bz2 cygnal-b62b8d7c8086626f09f699e278d604ac0c8fe9a3.zip |
* 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.h | 3 |
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); } |