Lines Matching refs:cr

167 priv_pr_spriv(proc_t *p, prpriv_t *prpriv, const cred_t *cr)  in priv_pr_spriv()  argument
191 if (priv_proc_cred_perm(cr, p, &oldcred, VWRITE) != 0) { in priv_pr_spriv()
203 eset = CR_OEPRIV(cr); in priv_pr_spriv()
311 priv_getset(const cred_t *cr, int set) in priv_getset() argument
315 if ((CR_FLAGS(cr) & PRIV_AWARE) == 0) in priv_getset()
318 return (&CR_OEPRIV(cr)); in priv_getset()
320 return (&CR_OPPRIV(cr)); in priv_getset()
322 return (&CR_PRIVS(cr)->crprivs[set]); in priv_getset()
332 priv_getinfo(const cred_t *cr, void *buf) in priv_getinfo() argument
337 ii->val = CR_FLAGS(cr); in priv_getinfo()
452 priv_valid(const cred_t *cr) in priv_valid() argument
454 return (priv_issubset(&CR_EPRIV(cr), &CR_PPRIV(cr))); in priv_valid()
636 priv_set_PA(cred_t *cr) in priv_set_PA() argument
638 ASSERT(cr->cr_ref <= 2); in priv_set_PA()
640 if ((CR_FLAGS(cr) & (PRIV_AWARE|PRIV_AWARE_RESET)) == PRIV_AWARE) in priv_set_PA()
643 CR_FLAGS(cr) |= PRIV_AWARE; in priv_set_PA()
644 CR_FLAGS(cr) &= ~PRIV_AWARE_RESET; in priv_set_PA()
646 if (cr->cr_uid == 0) in priv_set_PA()
647 priv_union(&CR_LPRIV(cr), &CR_EPRIV(cr)); in priv_set_PA()
649 if (cr->cr_uid == 0 || cr->cr_suid == 0 || cr->cr_ruid == 0) in priv_set_PA()
650 priv_union(&CR_LPRIV(cr), &CR_PPRIV(cr)); in priv_set_PA()
654 priv_can_clear_PA(const cred_t *cr) in priv_can_clear_PA() argument
662 return ((cr->cr_suid != 0 && cr->cr_ruid != 0 && cr->cr_uid != 0) || in priv_can_clear_PA()
663 priv_isequalset(&CR_PPRIV(cr), &CR_LPRIV(cr)) && in priv_can_clear_PA()
664 (cr->cr_uid != 0 || priv_isequalset(&CR_EPRIV(cr), &CR_LPRIV(cr)))); in priv_can_clear_PA()
675 priv_adjust_PA(cred_t *cr) in priv_adjust_PA() argument
677 ASSERT(cr->cr_ref <= 2); in priv_adjust_PA()
679 if (!(CR_FLAGS(cr) & PRIV_AWARE) || in priv_adjust_PA()
680 !priv_can_clear_PA(cr)) { in priv_adjust_PA()
681 CR_FLAGS(cr) &= ~PRIV_AWARE_RESET; in priv_adjust_PA()
685 if (CR_FLAGS(cr) & PRIV_AWARE_INHERIT) in priv_adjust_PA()
694 if (cr->cr_suid == 0 || cr->cr_ruid == 0 || cr->cr_uid == 0) { in priv_adjust_PA()
695 if (cr->cr_uid == 0) in priv_adjust_PA()
696 priv_intersect(&CR_IPRIV(cr), &CR_EPRIV(cr)); in priv_adjust_PA()
697 priv_intersect(&CR_IPRIV(cr), &CR_PPRIV(cr)); in priv_adjust_PA()
700 CR_FLAGS(cr) &= ~(PRIV_AWARE|PRIV_AWARE_RESET); in priv_adjust_PA()
708 priv_reset_PA(cred_t *cr, boolean_t finalize) in priv_reset_PA() argument
710 ASSERT(cr->cr_ref <= 2); in priv_reset_PA()
712 if ((CR_FLAGS(cr) & (PRIV_AWARE|PRIV_AWARE_RESET)) != in priv_reset_PA()
714 CR_FLAGS(cr) &= ~PRIV_AWARE_RESET; in priv_reset_PA()
733 if (cr->cr_suid == cr->cr_ruid && cr->cr_suid == cr->cr_uid) { in priv_reset_PA()
734 if (finalize || cr->cr_uid != 0) { in priv_reset_PA()
735 CR_EPRIV(cr) = CR_IPRIV(cr); in priv_reset_PA()
736 priv_intersect(&CR_LPRIV(cr), &CR_EPRIV(cr)); in priv_reset_PA()
737 CR_PPRIV(cr) = CR_EPRIV(cr); in priv_reset_PA()
738 CR_FLAGS(cr) &= ~(PRIV_AWARE|PRIV_AWARE_RESET); in priv_reset_PA()
740 CR_EPRIV(cr) = CR_PPRIV(cr); in priv_reset_PA()
742 } else if (cr->cr_uid != 0 && (cr->cr_ruid == 0 || cr->cr_suid == 0)) { in priv_reset_PA()
743 CR_EPRIV(cr) = CR_IPRIV(cr); in priv_reset_PA()
744 priv_intersect(&CR_LPRIV(cr), &CR_EPRIV(cr)); in priv_reset_PA()