diff options
-rw-r--r-- | usr.sbin/lpr/lpc/lpc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.sbin/lpr/lpc/lpc.c b/usr.sbin/lpr/lpc/lpc.c index 5bfa859..866b8ac 100644 --- a/usr.sbin/lpr/lpc/lpc.c +++ b/usr.sbin/lpr/lpc/lpc.c @@ -334,6 +334,7 @@ ingroup(grname) char *grname; { static struct group *gptr=NULL; + static int ngroups = 0; static gid_t groups[NGROUPS]; register gid_t gid; register int i; @@ -343,11 +344,12 @@ ingroup(grname) warnx("warning: unknown group '%s'", grname); return(0); } - if (getgroups(NGROUPS, groups) < 0) + ngroups = getgroups(NGROUPS, groups); + if (ngroups < 0) err(1, "getgroups"); } gid = gptr->gr_gid; - for (i = 0; i < NGROUPS; i++) + for (i = 0; i < ngroups; i++) if (gid == groups[i]) return(1); return(0); |