On 06/25/2014 01:17 PM, Petr Stodůlka wrote: > Hi, > > command 'id' prints wrong groups for the session. This is similar to reported bug #7320 [0], > which was patched earlier for 'groups' and 'id -G', however just 'id' still prints wrong groups. > I propose this patch based on previous solution: > ---------------------------------------------------------------------- > diff --git a/src/id.c b/src/id.c > index 3348f80..6cfe884 100644 > --- a/src/id.c > +++ b/src/id.c > @@ -399,8 +399,12 @@ print_full_info (const char *username) > gid_t *groups; > int i; > > - int n_groups = xgetgroups (username, (pwd ? pwd->pw_gid : -1), > - &groups); > + int n_groups; > + if(username) > + n_groups = xgetgroups (username, (pwd ? pwd->pw_gid : -1), > + &groups); > + else > + n_groups = xgetgroups (username, egid, &groups); > if (n_groups < 0) > { > if (username) > -------------------------------------------------------------------- > > [0] http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7320 Logic looks correct. The attached refactors slightly, and adds a test and NEWS. I'll apply upon your ack. thanks! Pádraig.