Lines Matching refs:cr

167 priv_pr_spriv(proc_t *p, prpriv_t *prpriv, const cred_t *cr)  in priv_pr_spriv()  argument
190 if (priv_proc_cred_perm(cr, p, &oldcred, VWRITE) != 0) { in priv_pr_spriv()
202 eset = CR_OEPRIV(cr); in priv_pr_spriv()
310 priv_getset(const cred_t *cr, int set) in priv_getset() argument
314 if ((CR_FLAGS(cr) & PRIV_AWARE) == 0) in priv_getset()
317 return (&CR_OEPRIV(cr)); in priv_getset()
319 return (&CR_OPPRIV(cr)); in priv_getset()
321 return (&CR_PRIVS(cr)->crprivs[set]); in priv_getset()
331 priv_getinfo(const cred_t *cr, void *buf) in priv_getinfo() argument
336 ii->val = CR_FLAGS(cr); in priv_getinfo()
451 priv_valid(const cred_t *cr) in priv_valid() argument
453 return (priv_issubset(&CR_EPRIV(cr), &CR_PPRIV(cr))); in priv_valid()
635 priv_set_PA(cred_t *cr) in priv_set_PA() argument
637 ASSERT(cr->cr_ref <= 2); in priv_set_PA()
639 if ((CR_FLAGS(cr) & (PRIV_AWARE|PRIV_AWARE_RESET)) == PRIV_AWARE) in priv_set_PA()
642 CR_FLAGS(cr) |= PRIV_AWARE; in priv_set_PA()
643 CR_FLAGS(cr) &= ~PRIV_AWARE_RESET; in priv_set_PA()
645 if (cr->cr_uid == 0) in priv_set_PA()
646 priv_union(&CR_LPRIV(cr), &CR_EPRIV(cr)); in priv_set_PA()
648 if (cr->cr_uid == 0 || cr->cr_suid == 0 || cr->cr_ruid == 0) in priv_set_PA()
649 priv_union(&CR_LPRIV(cr), &CR_PPRIV(cr)); in priv_set_PA()
653 priv_can_clear_PA(const cred_t *cr) in priv_can_clear_PA() argument
661 return ((cr->cr_suid != 0 && cr->cr_ruid != 0 && cr->cr_uid != 0) || in priv_can_clear_PA()
662 priv_isequalset(&CR_PPRIV(cr), &CR_LPRIV(cr)) && in priv_can_clear_PA()
663 (cr->cr_uid != 0 || priv_isequalset(&CR_EPRIV(cr), &CR_LPRIV(cr)))); in priv_can_clear_PA()
674 priv_adjust_PA(cred_t *cr) in priv_adjust_PA() argument
676 ASSERT(cr->cr_ref <= 2); in priv_adjust_PA()
678 if (!(CR_FLAGS(cr) & PRIV_AWARE) || in priv_adjust_PA()
679 !priv_can_clear_PA(cr)) { in priv_adjust_PA()
680 CR_FLAGS(cr) &= ~PRIV_AWARE_RESET; in priv_adjust_PA()
684 if (CR_FLAGS(cr) & PRIV_AWARE_INHERIT) in priv_adjust_PA()
693 if (cr->cr_suid == 0 || cr->cr_ruid == 0 || cr->cr_uid == 0) { in priv_adjust_PA()
694 if (cr->cr_uid == 0) in priv_adjust_PA()
695 priv_intersect(&CR_IPRIV(cr), &CR_EPRIV(cr)); in priv_adjust_PA()
696 priv_intersect(&CR_IPRIV(cr), &CR_PPRIV(cr)); in priv_adjust_PA()
699 CR_FLAGS(cr) &= ~(PRIV_AWARE|PRIV_AWARE_RESET); in priv_adjust_PA()
707 priv_reset_PA(cred_t *cr, boolean_t finalize) in priv_reset_PA() argument
709 ASSERT(cr->cr_ref <= 2); in priv_reset_PA()
711 if ((CR_FLAGS(cr) & (PRIV_AWARE|PRIV_AWARE_RESET)) != in priv_reset_PA()
713 CR_FLAGS(cr) &= ~PRIV_AWARE_RESET; in priv_reset_PA()
732 if (cr->cr_suid == cr->cr_ruid && cr->cr_suid == cr->cr_uid) { in priv_reset_PA()
733 if (finalize || cr->cr_uid != 0) { in priv_reset_PA()
734 CR_EPRIV(cr) = CR_IPRIV(cr); in priv_reset_PA()
735 priv_intersect(&CR_LPRIV(cr), &CR_EPRIV(cr)); in priv_reset_PA()
736 CR_PPRIV(cr) = CR_EPRIV(cr); in priv_reset_PA()
737 CR_FLAGS(cr) &= ~(PRIV_AWARE|PRIV_AWARE_RESET); in priv_reset_PA()
739 CR_EPRIV(cr) = CR_PPRIV(cr); in priv_reset_PA()
741 } else if (cr->cr_uid != 0 && (cr->cr_ruid == 0 || cr->cr_suid == 0)) { in priv_reset_PA()
742 CR_EPRIV(cr) = CR_IPRIV(cr); in priv_reset_PA()
743 priv_intersect(&CR_LPRIV(cr), &CR_EPRIV(cr)); in priv_reset_PA()