Mercurial > hg > octave-kai > gnulib-hg
changeset 1262:662622cf616f
(getugroups): Don't add a group number if it would be a duplicate.
From Ulrich Drepper.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Fri, 13 Mar 1998 15:24:43 +0000 |
parents | 67cadf165f7f |
children | ecbdcfdb813a |
files | lib/getugroups.c |
diffstat | 1 files changed, 18 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/getugroups.c +++ b/lib/getugroups.c @@ -1,5 +1,5 @@ /* getugroups.c -- return a list of the groups a user is in - Copyright (C) 1990, 1991 Free Software Foundation. + Copyright (C) 1990, 1991, 1998 Free Software Foundation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -59,16 +59,27 @@ for (cp = grp->gr_mem; *cp; ++cp) if (!strcmp (username, *cp)) { - if (maxcount != 0) + int n; + + /* See if this group number is already on the list. */ + for (n = 0; n < count; ++n) + if (grouplist[n] == grp->gr_gid) + break; + + /* If it's a new group number, then try to add it to the list. */ + if (n == count) { - if (count >= maxcount) + if (maxcount != 0) { - endgrent (); - return count; + if (count >= maxcount) + { + endgrent (); + return count; + } + grouplist[count] = grp->gr_gid; } - grouplist[count] = grp->gr_gid; + count++; } - count++; } endgrent (); return count;