| /linux/kernel/ |
| H A D | groups.c | 15 struct group_info *groups_alloc(int gidsetsize) in groups_alloc() 17 struct group_info *gi; in groups_alloc() 29 void groups_free(struct group_info *group_info) in groups_free() argument 31 kvfree(group_info); in groups_free() 38 const struct group_info *group_info) in groups_to_user() argument 42 unsigned int count = group_info->ngroups; in groups_to_user() 46 gid = from_kgid_munged(user_ns, group_info->gid[i]); in groups_to_user() 54 static int groups_from_user(struct group_info *group_info, in groups_from_user() argument 59 unsigned int count = group_info->ngroups; in groups_from_user() 71 group_info->gid[i] = kgid; in groups_from_user() [all …]
|
| H A D | uid16.c | 115 struct group_info *group_info) in groups16_to_user() argument 122 for (i = 0; i < group_info->ngroups; i++) { in groups16_to_user() 123 kgid = group_info->gid[i]; in groups16_to_user() 132 static int groups16_from_user(struct group_info *group_info, in groups16_from_user() argument 140 for (i = 0; i < group_info->ngroups; i++) { in groups16_from_user() 148 group_info->gid[i] = kgid; in groups16_from_user() 162 i = cred->group_info->ngroups; in SYSCALL_DEFINE2() 168 if (groups16_to_user(grouplist, cred->group_info)) { in SYSCALL_DEFINE2() 179 struct group_info *group_info; in SYSCALL_DEFINE2() local 187 group_info = groups_alloc(gidsetsize); in SYSCALL_DEFINE2() [all …]
|
| H A D | cred.c | 56 if (cred->group_info) in put_cred_rcu() 57 put_group_info(cred->group_info); in put_cred_rcu() 196 get_group_info(new->group_info); in prepare_creds() 474 struct group_info *ga, *gb; in cred_fscmp() 489 ga = a->group_info; in cred_fscmp() 490 gb = b->group_info; in cred_fscmp() 579 get_group_info(new->group_info); in prepare_kernel_cred()
|
| H A D | auditsc.c | 520 result = groups_search(cred->group_info, f->gid); in audit_filter_rules() 523 result = !groups_search(cred->group_info, f->gid); in audit_filter_rules() 530 result = groups_search(cred->group_info, f->gid); in audit_filter_rules() 533 result = !groups_search(cred->group_info, f->gid); in audit_filter_rules()
|
| /linux/include/linux/ |
| H A D | cred.h | 28 struct group_info { struct 43 static inline struct group_info *get_group_info(struct group_info *gi) in get_group_info() 53 #define put_group_info(group_info) \ argument 55 if (refcount_dec_and_test(&(group_info)->usage)) \ 56 groups_free(group_info); \ 60 extern struct group_info *groups_alloc(int); 61 extern void groups_free(struct group_info *); 65 extern int groups_search(const struct group_info *, kgid_t); 67 extern int set_current_groups(struct group_info *); 68 extern void set_groups(struct cred *, struct group_info *); [all …]
|
| H A D | nfs_fs.h | 65 struct group_info *group_info; member
|
| /linux/net/sunrpc/ |
| H A D | auth_unix.c | 91 if (acred->cred->group_info != NULL) in unx_match() 92 groups = acred->cred->group_info->ngroups; in unx_match() 95 if (cred->cr_cred->group_info == NULL) in unx_match() 97 if (groups != cred->cr_cred->group_info->ngroups) in unx_match() 101 if (!gid_eq(cred->cr_cred->group_info->gid[i], acred->cred->group_info->gid[i])) in unx_match() 117 struct group_info *gi = cred->cr_cred->group_info; in unx_marshal()
|
| H A D | svcauth.c | 198 if (cred->group_info) in svcauth_map_clnt_to_svc_cred_local() 199 svc->cr_group_info = get_group_info(cred->group_info); in svcauth_map_clnt_to_svc_cred_local()
|
| H A D | svcauth_unix.c | 411 struct group_info *gi; 642 static struct group_info *unix_gid_find(kuid_t uid, struct svc_rqst *rqstp) in unix_gid_find() 645 struct group_info *gi; in unix_gid_find() 674 struct group_info *gi; in svcauth_unix_set_client()
|
| /linux/security/safesetid/ |
| H A D | lsm.c | 247 get_group_info(new->group_info); in safesetid_task_fix_setgroups() 248 for (i = 0; i < new->group_info->ngroups; i++) { in safesetid_task_fix_setgroups() 249 if (!id_permitted_for_cred(old, (kid_t){.gid = new->group_info->gid[i]}, GID)) { in safesetid_task_fix_setgroups() 250 put_group_info(new->group_info); in safesetid_task_fix_setgroups() 261 put_group_info(new->group_info); in safesetid_task_fix_setgroups()
|
| /linux/fs/nfsd/ |
| H A D | auth.c | 23 struct group_info *rqgi; in nfsd_setuser() 24 struct group_info *gi; in nfsd_setuser()
|
| H A D | nfs4state.c | 2631 static bool groups_equal(struct group_info *g1, struct group_info *g2) in groups_equal()
|
| /linux/fs/proc/ |
| H A D | array.c | 152 struct group_info *group_info; in task_state() local 198 group_info = cred->group_info; in task_state() 199 for (g = 0; g < group_info->ngroups; g++) in task_state() 201 from_kgid_munged(user_ns, group_info->gid[g])); in task_state()
|
| /linux/net/netfilter/ |
| H A D | xt_owner.c | 102 struct group_info *gi = filp->f_cred->group_info; in owner_mt()
|
| /linux/Documentation/translations/zh_CN/security/ |
| H A D | credentials.rst | 221 2. 它所指向的 group_info 结构体的引用计数可以更改; 295 struct group_info *get_current_groups(void);
|
| /linux/security/keys/ |
| H A D | permission.c | 67 ret = groups_search(cred->group_info, key->gid); in key_task_permission()
|
| H A D | process_keys.c | 939 new->group_info = get_group_info(old->group_info); in key_change_session_keyring()
|
| /linux/include/linux/sunrpc/ |
| H A D | svcauth.h | 25 struct group_info *cr_group_info;
|
| /linux/fs/nfs/ |
| H A D | dir.c | 2861 put_group_info(entry->group_info); in nfs_access_free_entry() 2989 struct group_info *ga, *gb; in access_cmp() 3002 ga = a->group_info; in access_cmp() 3003 gb = b->group_info; in access_cmp() 3201 cache->group_info = get_group_info(cred->group_info); in nfs_access_add_cache()
|
| /linux/fs/smb/server/ |
| H A D | smb_common.c | 745 struct group_info *gi; in __ksmbd_override_fsids()
|
| /linux/sound/pci/asihpi/ |
| H A D | hpifunc.c | 823 *poutstream_map = hr.u.d.u.group_info.outstream_group_map; in hpi_outstream_group_get_map() 825 *pinstream_map = hr.u.d.u.group_info.instream_group_map; in hpi_outstream_group_get_map() 1181 *poutstream_map = hr.u.d.u.group_info.outstream_group_map; in hpi_instream_group_get_map() 1183 *pinstream_map = hr.u.d.u.group_info.instream_group_map; in hpi_instream_group_get_map()
|
| H A D | hpi_internal.h | 761 } group_info; member
|
| /linux/fs/ceph/ |
| H A D | mds_client.c | 2940 ceph_encode_32(p, req->r_cred->group_info->ngroups); in encode_mclientrequest_tail() 2941 for (i = 0; i < req->r_cred->group_info->ngroups; i++) in encode_mclientrequest_tail() 2943 req->r_cred->group_info->gid[i])); in encode_mclientrequest_tail() 3103 len += sizeof(u32) + (sizeof(u64) * req->r_cred->group_info->ngroups); in create_request_message() 5696 if (!gid_matched && cred->group_info->ngroups) { in ceph_mds_auth_match() 5697 for (i = 0; i < cred->group_info->ngroups; i++) { in ceph_mds_auth_match() 5699 cred->group_info->gid[i]); in ceph_mds_auth_match()
|
| /linux/Documentation/security/ |
| H A D | credentials.rst | 260 2. the reference count on the group_info struct it points to may be changed; 348 struct group_info *get_current_groups(void);
|
| /linux/net/core/ |
| H A D | sock.c | 1710 static int groups_to_user(sockptr_t dst, const struct group_info *src) in groups_to_user() 1961 n = cred->group_info->ngroups; in sk_getsockopt() 1969 ret = groups_to_user(optval, cred->group_info); in sk_getsockopt()
|