Skip to content

Commit

Permalink
userns: Convert in_group_p and in_egroup_p to use kgid_t
Browse files Browse the repository at this point in the history
Acked-by: Serge Hallyn <[email protected]>
Signed-off-by: Eric W. Biederman <[email protected]>
  • Loading branch information
ebiederm committed May 3, 2012
1 parent 9236163 commit 72cda3d
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 10 deletions.
4 changes: 2 additions & 2 deletions include/linux/cred.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ extern int groups_search(const struct group_info *, kgid_t);
#define GROUP_AT(gi, i) \
((gi)->blocks[(i) / NGROUPS_PER_BLOCK][(i) % NGROUPS_PER_BLOCK])

extern int in_group_p(gid_t);
extern int in_egroup_p(gid_t);
extern int in_group_p(kgid_t);
extern int in_egroup_p(kgid_t);

/*
* The common credentials for a thread group
Expand Down
14 changes: 6 additions & 8 deletions kernel/groups.c
Original file line number Diff line number Diff line change
Expand Up @@ -256,27 +256,25 @@ SYSCALL_DEFINE2(setgroups, int, gidsetsize, gid_t __user *, grouplist)
/*
* Check whether we're fsgid/egid or in the supplemental group..
*/
int in_group_p(gid_t grp)
int in_group_p(kgid_t grp)
{
const struct cred *cred = current_cred();
int retval = 1;

if (grp != cred->fsgid)
retval = groups_search(cred->group_info,
make_kgid(cred->user_ns, grp));
if (!gid_eq(grp, cred->fsgid))
retval = groups_search(cred->group_info, grp);
return retval;
}

EXPORT_SYMBOL(in_group_p);

int in_egroup_p(gid_t grp)
int in_egroup_p(kgid_t grp)
{
const struct cred *cred = current_cred();
int retval = 1;

if (grp != cred->egid)
retval = groups_search(cred->group_info,
make_kgid(cred->user_ns, grp));
if (!gid_eq(grp, cred->egid))
retval = groups_search(cred->group_info, grp);
return retval;
}

Expand Down

0 comments on commit 72cda3d

Please sign in to comment.