diff options
author | Michael Stone <michael@laptop.org> | 2009-09-30 05:54:46 (GMT) |
---|---|---|
committer | Michael Stone <michael@laptop.org> | 2009-09-30 05:54:46 (GMT) |
commit | 548c38ccc4d0685a999ba373ad237b6cffb5e12c (patch) | |
tree | 0af0f24d509f6205828c204ab453b02a2b0f52cc | |
parent | 05156ce770ff4f7361fb0ccbbe946ac652666408 (diff) |
Correctly calculate number of members of a struct group.
-rw-r--r-- | rainbow/nss/gids.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/rainbow/nss/gids.c b/rainbow/nss/gids.c index a374dbe..81d7d69 100644 --- a/rainbow/nss/gids.c +++ b/rainbow/nss/gids.c @@ -18,8 +18,10 @@ int main() { printf("status: %d\n", i); break; } - printf("\n%d: %s (%d)\n", cnt, grp->gr_name, grp->gr_gid); - int num_members = strlen((char*)grp->gr_mem) / sizeof(char*); + int num_members = 0; + char** mem_ptr = grp->gr_mem; + while (mem_ptr && *mem_ptr) {num_members++; mem_ptr++;} + printf("\ncnt %d: name %s gid (%d) : num_members %d\n", cnt, grp->gr_name, grp->gr_gid, num_members); for (i = 0; i < num_members; i++) printf("%s ", grp->gr_mem[i]); if (num_members) printf("\n"); |