/* Check if the passed gid is available in supplied credential. */ int groupmember(gid_t gid, const cred_t *cr) { struct group_info *gi; int rc; gi = cr->group_info; rc = cr_groups_search(gi, SGID_TO_KGID(gid)); return (rc); }
/* Check if the passed gid is available is in supplied credential. */ int groupmember(gid_t gid, const cred_t *cr) { struct group_info *gi; int rc; gi = get_group_info(cr->group_info); rc = cr_groups_search(cr->group_info, gid); put_group_info(gi); return rc; }
/* Check if the passed gid is available is in supplied credential. */ int groupmember(gid_t gid, const cred_t *cr) { int lock, rc; lock = (cr != current); if (lock) task_lock((struct task_struct *)cr); get_group_info(cr->group_info); rc = cr_groups_search(cr->group_info, gid); put_group_info(cr->group_info); if (lock) task_unlock((struct task_struct *)cr); return rc; }