Lines Matching refs:cred

105 	kauth_cred_t cred;  in kauth_cred_alloc()  local
107 cred = pool_cache_get(kauth_cred_cache, PR_WAITOK); in kauth_cred_alloc()
109 cred->cr_refcnt = 1; in kauth_cred_alloc()
110 cred->cr_uid = 0; in kauth_cred_alloc()
111 cred->cr_euid = 0; in kauth_cred_alloc()
112 cred->cr_svuid = 0; in kauth_cred_alloc()
113 cred->cr_gid = 0; in kauth_cred_alloc()
114 cred->cr_egid = 0; in kauth_cred_alloc()
115 cred->cr_svgid = 0; in kauth_cred_alloc()
116 cred->cr_ngroups = 0; in kauth_cred_alloc()
118 specificdata_init(kauth_domain, &cred->cr_sd); in kauth_cred_alloc()
119 kauth_cred_hook(cred, KAUTH_CRED_INIT, NULL, NULL); in kauth_cred_alloc()
121 return (cred); in kauth_cred_alloc()
126 kauth_cred_hold(kauth_cred_t cred) in kauth_cred_hold() argument
128 KASSERT(cred != NULL); in kauth_cred_hold()
129 KASSERT(cred != NOCRED); in kauth_cred_hold()
130 KASSERT(cred != FSCRED); in kauth_cred_hold()
131 KASSERT(cred->cr_refcnt > 0); in kauth_cred_hold()
133 atomic_inc_uint(&cred->cr_refcnt); in kauth_cred_hold()
134 return cred; in kauth_cred_hold()
139 kauth_cred_free(kauth_cred_t cred) in kauth_cred_free() argument
142 KASSERT(cred != NULL); in kauth_cred_free()
143 KASSERT(cred != NOCRED); in kauth_cred_free()
144 KASSERT(cred != FSCRED); in kauth_cred_free()
145 KASSERT(cred->cr_refcnt > 0); in kauth_cred_free()
149 if (atomic_dec_uint_nv(&cred->cr_refcnt) > 0) in kauth_cred_free()
153 kauth_cred_hook(cred, KAUTH_CRED_FREE, NULL, NULL); in kauth_cred_free()
154 specificdata_fini(kauth_domain, &cred->cr_sd); in kauth_cred_free()
155 pool_cache_put(kauth_cred_cache, cred); in kauth_cred_free()
193 kauth_cred_dup(kauth_cred_t cred) in kauth_cred_dup() argument
197 KASSERT(cred != NULL); in kauth_cred_dup()
198 KASSERT(cred != NOCRED); in kauth_cred_dup()
199 KASSERT(cred != FSCRED); in kauth_cred_dup()
200 KASSERT(cred->cr_refcnt > 0); in kauth_cred_dup()
204 kauth_cred_clone(cred, new_cred); in kauth_cred_dup()
214 kauth_cred_copy(kauth_cred_t cred) in kauth_cred_copy() argument
218 KASSERT(cred != NULL); in kauth_cred_copy()
219 KASSERT(cred != NOCRED); in kauth_cred_copy()
220 KASSERT(cred != FSCRED); in kauth_cred_copy()
221 KASSERT(cred->cr_refcnt > 0); in kauth_cred_copy()
224 if (cred->cr_refcnt == 1) in kauth_cred_copy()
225 return (cred); in kauth_cred_copy()
229 kauth_cred_clone(cred, new_cred); in kauth_cred_copy()
231 kauth_cred_free(cred); in kauth_cred_copy()
250 kauth_proc_chroot(kauth_cred_t cred, struct cwdinfo *cwdi) in kauth_proc_chroot() argument
252 kauth_cred_hook(cred, KAUTH_CRED_CHROOT, cwdi, NULL); in kauth_proc_chroot()
256 kauth_cred_getuid(kauth_cred_t cred) in kauth_cred_getuid() argument
258 KASSERT(cred != NULL); in kauth_cred_getuid()
259 KASSERT(cred != NOCRED); in kauth_cred_getuid()
260 KASSERT(cred != FSCRED); in kauth_cred_getuid()
262 return (cred->cr_uid); in kauth_cred_getuid()
266 kauth_cred_geteuid(kauth_cred_t cred) in kauth_cred_geteuid() argument
268 KASSERT(cred != NULL); in kauth_cred_geteuid()
269 KASSERT(cred != NOCRED); in kauth_cred_geteuid()
270 KASSERT(cred != FSCRED); in kauth_cred_geteuid()
272 return (cred->cr_euid); in kauth_cred_geteuid()
276 kauth_cred_getsvuid(kauth_cred_t cred) in kauth_cred_getsvuid() argument
278 KASSERT(cred != NULL); in kauth_cred_getsvuid()
279 KASSERT(cred != NOCRED); in kauth_cred_getsvuid()
280 KASSERT(cred != FSCRED); in kauth_cred_getsvuid()
282 return (cred->cr_svuid); in kauth_cred_getsvuid()
286 kauth_cred_getgid(kauth_cred_t cred) in kauth_cred_getgid() argument
288 KASSERT(cred != NULL); in kauth_cred_getgid()
289 KASSERT(cred != NOCRED); in kauth_cred_getgid()
290 KASSERT(cred != FSCRED); in kauth_cred_getgid()
292 return (cred->cr_gid); in kauth_cred_getgid()
296 kauth_cred_getegid(kauth_cred_t cred) in kauth_cred_getegid() argument
298 KASSERT(cred != NULL); in kauth_cred_getegid()
299 KASSERT(cred != NOCRED); in kauth_cred_getegid()
300 KASSERT(cred != FSCRED); in kauth_cred_getegid()
302 return (cred->cr_egid); in kauth_cred_getegid()
306 kauth_cred_getsvgid(kauth_cred_t cred) in kauth_cred_getsvgid() argument
308 KASSERT(cred != NULL); in kauth_cred_getsvgid()
309 KASSERT(cred != NOCRED); in kauth_cred_getsvgid()
310 KASSERT(cred != FSCRED); in kauth_cred_getsvgid()
312 return (cred->cr_svgid); in kauth_cred_getsvgid()
316 kauth_cred_setuid(kauth_cred_t cred, uid_t uid) in kauth_cred_setuid() argument
318 KASSERT(cred != NULL); in kauth_cred_setuid()
319 KASSERT(cred != NOCRED); in kauth_cred_setuid()
320 KASSERT(cred != FSCRED); in kauth_cred_setuid()
321 KASSERT(cred->cr_refcnt == 1); in kauth_cred_setuid()
323 cred->cr_uid = uid; in kauth_cred_setuid()
327 kauth_cred_seteuid(kauth_cred_t cred, uid_t uid) in kauth_cred_seteuid() argument
329 KASSERT(cred != NULL); in kauth_cred_seteuid()
330 KASSERT(cred != NOCRED); in kauth_cred_seteuid()
331 KASSERT(cred != FSCRED); in kauth_cred_seteuid()
332 KASSERT(cred->cr_refcnt == 1); in kauth_cred_seteuid()
334 cred->cr_euid = uid; in kauth_cred_seteuid()
338 kauth_cred_setsvuid(kauth_cred_t cred, uid_t uid) in kauth_cred_setsvuid() argument
340 KASSERT(cred != NULL); in kauth_cred_setsvuid()
341 KASSERT(cred != NOCRED); in kauth_cred_setsvuid()
342 KASSERT(cred != FSCRED); in kauth_cred_setsvuid()
343 KASSERT(cred->cr_refcnt == 1); in kauth_cred_setsvuid()
345 cred->cr_svuid = uid; in kauth_cred_setsvuid()
349 kauth_cred_setgid(kauth_cred_t cred, gid_t gid) in kauth_cred_setgid() argument
351 KASSERT(cred != NULL); in kauth_cred_setgid()
352 KASSERT(cred != NOCRED); in kauth_cred_setgid()
353 KASSERT(cred != FSCRED); in kauth_cred_setgid()
354 KASSERT(cred->cr_refcnt == 1); in kauth_cred_setgid()
356 cred->cr_gid = gid; in kauth_cred_setgid()
360 kauth_cred_setegid(kauth_cred_t cred, gid_t gid) in kauth_cred_setegid() argument
362 KASSERT(cred != NULL); in kauth_cred_setegid()
363 KASSERT(cred != NOCRED); in kauth_cred_setegid()
364 KASSERT(cred != FSCRED); in kauth_cred_setegid()
365 KASSERT(cred->cr_refcnt == 1); in kauth_cred_setegid()
367 cred->cr_egid = gid; in kauth_cred_setegid()
371 kauth_cred_setsvgid(kauth_cred_t cred, gid_t gid) in kauth_cred_setsvgid() argument
373 KASSERT(cred != NULL); in kauth_cred_setsvgid()
374 KASSERT(cred != NOCRED); in kauth_cred_setsvgid()
375 KASSERT(cred != FSCRED); in kauth_cred_setsvgid()
376 KASSERT(cred->cr_refcnt == 1); in kauth_cred_setsvgid()
378 cred->cr_svgid = gid; in kauth_cred_setsvgid()
383 kauth_cred_ismember_gid(kauth_cred_t cred, gid_t gid, int *resultp) in kauth_cred_ismember_gid() argument
387 KASSERT(cred != NULL); in kauth_cred_ismember_gid()
388 KASSERT(cred != NOCRED); in kauth_cred_ismember_gid()
389 KASSERT(cred != FSCRED); in kauth_cred_ismember_gid()
394 for (i = 0; i < cred->cr_ngroups; i++) in kauth_cred_ismember_gid()
395 if (cred->cr_groups[i] == gid) { in kauth_cred_ismember_gid()
404 kauth_cred_groupmember(kauth_cred_t cred, gid_t gid) in kauth_cred_groupmember() argument
408 KASSERT(cred != NULL); in kauth_cred_groupmember()
409 KASSERT(cred != NOCRED); in kauth_cred_groupmember()
410 KASSERT(cred != FSCRED); in kauth_cred_groupmember()
412 if (kauth_cred_getegid(cred) == gid) in kauth_cred_groupmember()
415 error = kauth_cred_ismember_gid(cred, gid, &ismember); in kauth_cred_groupmember()
423 kauth_cred_ngroups(kauth_cred_t cred) in kauth_cred_ngroups() argument
425 KASSERT(cred != NULL); in kauth_cred_ngroups()
426 KASSERT(cred != NOCRED); in kauth_cred_ngroups()
427 KASSERT(cred != FSCRED); in kauth_cred_ngroups()
429 return (cred->cr_ngroups); in kauth_cred_ngroups()
436 kauth_cred_group(kauth_cred_t cred, u_int idx) in kauth_cred_group() argument
438 KASSERT(cred != NULL); in kauth_cred_group()
439 KASSERT(cred != NOCRED); in kauth_cred_group()
440 KASSERT(cred != FSCRED); in kauth_cred_group()
441 KASSERT(idx < cred->cr_ngroups); in kauth_cred_group()
443 return (cred->cr_groups[idx]); in kauth_cred_group()
448 kauth_cred_setgroups(kauth_cred_t cred, const gid_t *grbuf, size_t len, in kauth_cred_setgroups() argument
453 KASSERT(cred != NULL); in kauth_cred_setgroups()
454 KASSERT(cred != NOCRED); in kauth_cred_setgroups()
455 KASSERT(cred != FSCRED); in kauth_cred_setgroups()
456 KASSERT(cred->cr_refcnt == 1); in kauth_cred_setgroups()
458 if (len > __arraycount(cred->cr_groups)) in kauth_cred_setgroups()
463 memcpy(cred->cr_groups, grbuf, in kauth_cred_setgroups()
464 len * sizeof(cred->cr_groups[0])); in kauth_cred_setgroups()
466 error = copyin(grbuf, cred->cr_groups, in kauth_cred_setgroups()
467 len * sizeof(cred->cr_groups[0])); in kauth_cred_setgroups()
472 memset(cred->cr_groups + len, 0xff, in kauth_cred_setgroups()
473 sizeof(cred->cr_groups) - (len * sizeof(cred->cr_groups[0]))); in kauth_cred_setgroups()
475 cred->cr_ngroups = len; in kauth_cred_setgroups()
484 kauth_cred_t cred; in kauth_proc_setgroups() local
494 cred = l->l_proc->p_cred; in kauth_proc_setgroups()
496 kauth_cred_clone1(cred, ncred, false); in kauth_proc_setgroups()
498 error = kauth_authorize_process(cred, KAUTH_PROCESS_SETID, in kauth_proc_setgroups()
501 proc_crmod_leave(cred, ncred, false); in kauth_proc_setgroups()
506 proc_crmod_leave(ncred, cred, true); in kauth_proc_setgroups()
511 kauth_cred_getgroups(kauth_cred_t cred, gid_t *grbuf, size_t len, in kauth_cred_getgroups() argument
514 KASSERT(cred != NULL); in kauth_cred_getgroups()
516 if (len > cred->cr_ngroups) in kauth_cred_getgroups()
520 return copyout(cred->cr_groups, grbuf, sizeof(*grbuf) * len); in kauth_cred_getgroups()
521 memcpy(grbuf, cred->cr_groups, sizeof(*grbuf) * len); in kauth_cred_getgroups()
560 kauth_cred_getdata(kauth_cred_t cred, kauth_key_t key) in kauth_cred_getdata() argument
562 KASSERT(cred != NULL); in kauth_cred_getdata()
563 KASSERT(cred != NOCRED); in kauth_cred_getdata()
564 KASSERT(cred != FSCRED); in kauth_cred_getdata()
567 return (specificdata_getspecific(kauth_domain, &cred->cr_sd, in kauth_cred_getdata()
572 kauth_cred_setdata(kauth_cred_t cred, kauth_key_t key, void *data) in kauth_cred_setdata() argument
574 KASSERT(cred != NULL); in kauth_cred_setdata()
575 KASSERT(cred != NOCRED); in kauth_cred_setdata()
576 KASSERT(cred != FSCRED); in kauth_cred_setdata()
579 specificdata_setspecific(kauth_domain, &cred->cr_sd, key->ks_key, data); in kauth_cred_setdata()
605 kauth_cred_getrefcnt(kauth_cred_t cred) in kauth_cred_getrefcnt() argument
607 KASSERT(cred != NULL); in kauth_cred_getrefcnt()
608 KASSERT(cred != NOCRED); in kauth_cred_getrefcnt()
609 KASSERT(cred != FSCRED); in kauth_cred_getrefcnt()
611 return (cred->cr_refcnt); in kauth_cred_getrefcnt()
619 kauth_uucred_to_cred(kauth_cred_t cred, const struct uucred *uuc) in kauth_uucred_to_cred() argument
621 KASSERT(cred != NULL); in kauth_uucred_to_cred()
622 KASSERT(cred != NOCRED); in kauth_uucred_to_cred()
623 KASSERT(cred != FSCRED); in kauth_uucred_to_cred()
626 cred->cr_refcnt = 1; in kauth_uucred_to_cred()
627 cred->cr_uid = uuc->cr_uid; in kauth_uucred_to_cred()
628 cred->cr_euid = uuc->cr_uid; in kauth_uucred_to_cred()
629 cred->cr_svuid = uuc->cr_uid; in kauth_uucred_to_cred()
630 cred->cr_gid = uuc->cr_gid; in kauth_uucred_to_cred()
631 cred->cr_egid = uuc->cr_gid; in kauth_uucred_to_cred()
632 cred->cr_svgid = uuc->cr_gid; in kauth_uucred_to_cred()
633 cred->cr_ngroups = uimin(uuc->cr_ngroups, NGROUPS); in kauth_uucred_to_cred()
634 kauth_cred_setgroups(cred, __UNCONST(uuc->cr_groups), in kauth_uucred_to_cred()
635 cred->cr_ngroups, -1, UIO_SYSSPACE); in kauth_uucred_to_cred()
643 kauth_cred_to_uucred(struct uucred *uuc, const kauth_cred_t cred) in kauth_cred_to_uucred() argument
645 KASSERT(cred != NULL); in kauth_cred_to_uucred()
646 KASSERT(cred != NOCRED); in kauth_cred_to_uucred()
647 KASSERT(cred != FSCRED); in kauth_cred_to_uucred()
651 ng = uimin(cred->cr_ngroups, NGROUPS); in kauth_cred_to_uucred()
652 uuc->cr_uid = cred->cr_euid; in kauth_cred_to_uucred()
653 uuc->cr_gid = cred->cr_egid; in kauth_cred_to_uucred()
655 kauth_cred_getgroups(cred, uuc->cr_groups, ng, UIO_SYSSPACE); in kauth_cred_to_uucred()
663 kauth_cred_uucmp(kauth_cred_t cred, const struct uucred *uuc) in kauth_cred_uucmp() argument
665 KASSERT(cred != NULL); in kauth_cred_uucmp()
666 KASSERT(cred != NOCRED); in kauth_cred_uucmp()
667 KASSERT(cred != FSCRED); in kauth_cred_uucmp()
670 if (cred->cr_euid == uuc->cr_uid && in kauth_cred_uucmp()
671 cred->cr_egid == uuc->cr_gid && in kauth_cred_uucmp()
672 cred->cr_ngroups == (uint32_t)uuc->cr_ngroups) { in kauth_cred_uucmp()
680 if (kauth_cred_ismember_gid(cred, uuc->cr_groups[i], in kauth_cred_uucmp()
695 kauth_cred_toucred(kauth_cred_t cred, struct ki_ucred *uc) in kauth_cred_toucred() argument
697 KASSERT(cred != NULL); in kauth_cred_toucred()
698 KASSERT(cred != NOCRED); in kauth_cred_toucred()
699 KASSERT(cred != FSCRED); in kauth_cred_toucred()
702 uc->cr_ref = cred->cr_refcnt; in kauth_cred_toucred()
703 uc->cr_uid = cred->cr_euid; in kauth_cred_toucred()
704 uc->cr_gid = cred->cr_egid; in kauth_cred_toucred()
705 uc->cr_ngroups = uimin(cred->cr_ngroups, __arraycount(uc->cr_groups)); in kauth_cred_toucred()
706 memcpy(uc->cr_groups, cred->cr_groups, in kauth_cred_toucred()
714 kauth_cred_topcred(kauth_cred_t cred, struct ki_pcred *pc) in kauth_cred_topcred() argument
716 KASSERT(cred != NULL); in kauth_cred_topcred()
717 KASSERT(cred != NOCRED); in kauth_cred_topcred()
718 KASSERT(cred != FSCRED); in kauth_cred_topcred()
722 pc->p_ruid = cred->cr_uid; in kauth_cred_topcred()
723 pc->p_svuid = cred->cr_svuid; in kauth_cred_topcred()
724 pc->p_rgid = cred->cr_gid; in kauth_cred_topcred()
725 pc->p_svgid = cred->cr_svgid; in kauth_cred_topcred()
726 pc->p_refcnt = cred->cr_refcnt; in kauth_cred_topcred()
969 kauth_authorize_action_internal(kauth_scope_t scope, kauth_cred_t cred, in kauth_authorize_action_internal() argument
975 KASSERT(cred != NULL); in kauth_authorize_action_internal()
979 if (cred == NOCRED || cred == FSCRED) in kauth_authorize_action_internal()
989 error = listener->func(cred, action, scope->cookie, arg0, in kauth_authorize_action_internal()
1009 kauth_authorize_action(kauth_scope_t scope, kauth_cred_t cred, in kauth_authorize_action() argument
1014 r = kauth_authorize_action_internal(scope, cred, action, arg0, arg1, in kauth_authorize_action()
1033 kauth_authorize_generic(kauth_cred_t cred, kauth_action_t action, void *arg0) in kauth_authorize_generic() argument
1035 return (kauth_authorize_action(kauth_builtin_scope_generic, cred, in kauth_authorize_generic()
1043 kauth_authorize_system(kauth_cred_t cred, kauth_action_t action, in kauth_authorize_system() argument
1046 return (kauth_authorize_action(kauth_builtin_scope_system, cred, in kauth_authorize_system()
1054 kauth_authorize_process(kauth_cred_t cred, kauth_action_t action, in kauth_authorize_process() argument
1057 return (kauth_authorize_action(kauth_builtin_scope_process, cred, in kauth_authorize_process()
1065 kauth_authorize_network(kauth_cred_t cred, kauth_action_t action, in kauth_authorize_network() argument
1068 return (kauth_authorize_action(kauth_builtin_scope_network, cred, in kauth_authorize_network()
1073 kauth_authorize_machdep(kauth_cred_t cred, kauth_action_t action, in kauth_authorize_machdep() argument
1076 return (kauth_authorize_action(kauth_builtin_scope_machdep, cred, in kauth_authorize_machdep()
1081 kauth_authorize_device(kauth_cred_t cred, kauth_action_t action, in kauth_authorize_device() argument
1084 return (kauth_authorize_action(kauth_builtin_scope_device, cred, in kauth_authorize_device()
1089 kauth_authorize_device_tty(kauth_cred_t cred, kauth_action_t action, in kauth_authorize_device_tty() argument
1092 return (kauth_authorize_action(kauth_builtin_scope_device, cred, in kauth_authorize_device_tty()
1097 kauth_authorize_device_spec(kauth_cred_t cred, enum kauth_device_req req, in kauth_authorize_device_spec() argument
1100 return (kauth_authorize_action(kauth_builtin_scope_device, cred, in kauth_authorize_device_spec()
1105 kauth_authorize_device_passthru(kauth_cred_t cred, dev_t dev, u_long bits, in kauth_authorize_device_passthru() argument
1108 return (kauth_authorize_action(kauth_builtin_scope_device, cred, in kauth_authorize_device_passthru()
1143 kauth_authorize_vnode(kauth_cred_t cred, kauth_action_t action, in kauth_authorize_vnode() argument
1148 error = kauth_authorize_action_internal(kauth_builtin_scope_vnode, cred, in kauth_authorize_vnode()
1170 kauth_cred_hook(kauth_cred_t cred, kauth_action_t action, void *arg0, in kauth_cred_hook() argument
1175 r = kauth_authorize_action(kauth_builtin_scope_cred, cred, action, in kauth_cred_hook()