summaryrefslogtreecommitdiff
path: root/libc/pwd_grp/initgroups.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2002-08-08 07:28:33 +0000
committerEric Andersen <andersen@codepoet.org>2002-08-08 07:28:33 +0000
commitf6cfb61578920a2aba19afbf320e007efd863730 (patch)
treeccb2c728bbc974843bcdcad15be710ca0fdc432c /libc/pwd_grp/initgroups.c
parent82dc33223c219e05fe2637f675e11cd85438f7be (diff)
Fix locking
-Erik
Diffstat (limited to 'libc/pwd_grp/initgroups.c')
-rw-r--r--libc/pwd_grp/initgroups.c54
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);
}