On Wed, Jun 25, 2014 at 6:53 PM, Pádraig Brady <p...@draigbrady.com> wrote: > 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.
Nice patch. Looks perfect. Thanks to both of you.