Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Stone <michael@laptop.org>2009-09-30 05:54:46 (GMT)
committer Michael Stone <michael@laptop.org>2009-09-30 05:54:46 (GMT)
commit548c38ccc4d0685a999ba373ad237b6cffb5e12c (patch)
tree0af0f24d509f6205828c204ab453b02a2b0f52cc
parent05156ce770ff4f7361fb0ccbbe946ac652666408 (diff)
Correctly calculate number of members of a struct group.
-rw-r--r--rainbow/nss/gids.c6
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");