diff options
author | Eric Andersen <andersen@codepoet.org> | 2002-08-08 07:28:33 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2002-08-08 07:28:33 +0000 |
commit | f6cfb61578920a2aba19afbf320e007efd863730 (patch) | |
tree | ccb2c728bbc974843bcdcad15be710ca0fdc432c /libc/pwd_grp/initgroups.c | |
parent | 82dc33223c219e05fe2637f675e11cd85438f7be (diff) |
Fix locking
-Erik
Diffstat (limited to 'libc/pwd_grp/initgroups.c')
-rw-r--r-- | libc/pwd_grp/initgroups.c | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/libc/pwd_grp/initgroups.c b/libc/pwd_grp/initgroups.c index 91af42f42..fb19c0327 100644 --- a/libc/pwd_grp/initgroups.c +++ b/libc/pwd_grp/initgroups.c @@ -27,49 +27,49 @@ int initgroups(__const char *user, gid_t gid) { - register struct group *group; + register struct group *group; #ifndef GR_DYNAMIC_GROUP_LIST - gid_t group_list[GR_MAX_GROUPS]; + gid_t group_list[GR_MAX_GROUPS]; #else - gid_t *group_list = NULL; + gid_t *group_list = NULL; #endif - register char **tmp_mem; - int num_groups; - int grp_fd; + register char **tmp_mem; + int num_groups; + int grp_fd; - if ((grp_fd = open(_PATH_GROUP, O_RDONLY)) < 0) - return -1; + if ((grp_fd = open(_PATH_GROUP, O_RDONLY)) < 0) + return -1; - num_groups = 0; + num_groups = 0; #ifdef GR_DYNAMIC_GROUP_LIST - group_list = (gid_t *) realloc(group_list, 1); + group_list = (gid_t *) realloc(group_list, 1); #endif - group_list[num_groups] = gid; + group_list[num_groups] = gid; #ifndef GR_DYNAMIC_GROUP_LIST - while (num_groups < GR_MAX_GROUPS && - (group = __getgrent(grp_fd)) != NULL) + while (num_groups < GR_MAX_GROUPS && + (group = __getgrent(grp_fd)) != NULL) #else while ((group = __getgrent(grp_fd)) != NULL) #endif { - if (group->gr_gid != gid); - { - tmp_mem = group->gr_mem; - while (*tmp_mem != NULL) { - if (!strcmp(*tmp_mem, user)) { - num_groups++; + if (group->gr_gid != gid); + { + tmp_mem = group->gr_mem; + while (*tmp_mem != NULL) { + if (!strcmp(*tmp_mem, user)) { + num_groups++; #ifdef GR_DYNAMIC_GROUP_LIST - group_list = (gid_t *) realloc(group_list, num_groups * - sizeof(gid_t *)); + group_list = (gid_t *) realloc(group_list, num_groups * + sizeof(gid_t *)); #endif - group_list[num_groups-1] = group->gr_gid; - } - tmp_mem++; - } + group_list[num_groups-1] = group->gr_gid; + } + tmp_mem++; } + } } - close(grp_fd); - return setgroups(num_groups, group_list); + close(grp_fd); + return setgroups(num_groups, group_list); } |