This handles the case where the user running the test suite doesn't have any supplementary groups. (I think user.c could use an overhaul; foreign_group crashes if get_group_list returns NULL, and the "not a member of any groups?" logic looks backwards to me.) diff -x config.log -x config.status -ru tmp/CSSC-1.3.0/testutils/user.c work/CSSC-1.3.0/testutils/user.c --- tmp/CSSC-1.3.0/testutils/user.c 2010-05-16 18:31:33.000000000 +0100 +++ work/CSSC-1.3.0/testutils/user.c 2010-11-09 10:32:21.000000000 +0000 @@ -70,7 +70,7 @@ * and return a list with it included, but only once */ gid_t egid = getegid(); - if (getgroups(len, &grouplist[1])) + if (getgroups(len, &grouplist[1]) >= 0) { if (duplicate_group(egid, grouplist+1, len)) {