prcred
static prcred_t prcred;
read(procfd, &prcred, sizeof (prcred)) !=
sizeof (prcred)) {
itoa((long)prcred.pr_euid, idstr);
itoa((long)prcred.pr_egid, idstr);
static prcred_t prcred;
read(procfd, &prcred, sizeof (prcred)) !=
sizeof (prcred)) {
if (idlist[i] == (id_t)prcred.pr_euid)
if (idlist[i] == (id_t)prcred.pr_egid)
prcred_t prcred;
read(procfd, &prcred, sizeof (prcred)) !=
sizeof (prcred)) {
if (id == (id_t)prcred.pr_euid)
if (id == (id_t)prcred.pr_egid)
static prcred_t *prcred = NULL;
if (prcred == NULL) {
prcred = malloc(sizeof (prcred_t) +
if (prcred == NULL) {
if (Pcred(Pr, prcred, ngroups_max) == -1) {
credupdate(prcred);
if (Psetcred(Pr, prcred) != 0) {
prcred->pr_euid == prcred->pr_ruid &&
prcred->pr_ruid == prcred->pr_suid)
(void) printf("e/r/suid=%u ", prcred->pr_euid);
prcred->pr_euid, prcred->pr_ruid, prcred->pr_suid);
prcred->pr_egid == prcred->pr_rgid &&
prcred->pr_rgid == prcred->pr_sgid)
(void) printf("e/r/sgid=%u\n", prcred->pr_egid);
prcred->pr_egid, prcred->pr_rgid, prcred->pr_sgid);
if (prcred->pr_ngroups != 0 &&
(all || prcred->pr_ngroups != 1 ||
prcred->pr_groups[0] != prcred->pr_rgid)) {
for (i = 0; i < prcred->pr_ngroups; i++)
(void) printf(" %u", prcred->pr_groups[i]);
const sl_prcred_layout_t *layout = state->ns_arch->prcred;
prcred_t prcred;
START(prcred, prcred_t);
const sl_prcred_layout_t *prcred; /* prcred_t */
prcred_t prcred; /* PCSCRED */
prcred_t *prcred = (prcred_t *)&argp->prcred;
error = pr_scred(p, prcred, cr, cmd == PCSCREDX);
pr_scred(proc_t *p, prcred_t *prcred, cred_t *cr, boolean_t dogrps)
if (!VALID_UID(prcred->pr_euid, zone) ||
!VALID_UID(prcred->pr_ruid, zone) ||
!VALID_UID(prcred->pr_suid, zone) ||
!VALID_GID(prcred->pr_egid, zone) ||
!VALID_GID(prcred->pr_rgid, zone) ||
!VALID_GID(prcred->pr_sgid, zone))
int ngrp = prcred->pr_ngroups;
if (!VALID_GID(prcred->pr_groups[i], zone))
error = secpolicy_allow_setid(cr, prcred->pr_euid, B_FALSE);
if (error == 0 && prcred->pr_ruid != prcred->pr_euid)
error = secpolicy_allow_setid(cr, prcred->pr_ruid, B_FALSE);
if (error == 0 && prcred->pr_suid != prcred->pr_euid &&
prcred->pr_suid != prcred->pr_ruid)
error = secpolicy_allow_setid(cr, prcred->pr_suid, B_FALSE);
(void) crsetresuid(newcred, prcred->pr_ruid, prcred->pr_euid,
prcred->pr_suid);
(void) crsetresgid(newcred, prcred->pr_rgid, prcred->pr_egid,
prcred->pr_sgid);
(void) crsetgroups(newcred, prcred->pr_ngroups,
prcred->pr_groups);
if (oldruid != prcred->pr_ruid) {
upcount_inc(prcred->pr_ruid, zoneid);
error = pr_scred(p, &argp->prcred, cr, cmd == PCSCREDX);
prcred32_t prcred; /* PCSCRED */
prcred_t prcred;
prcred_t prcred;
prcred_t prcred;
un32.prcred.pr_euid = crgetuid(cp);
un32.prcred.pr_ruid = crgetruid(cp);
un32.prcred.pr_suid = crgetsuid(cp);
un32.prcred.pr_egid = crgetgid(cp);
un32.prcred.pr_rgid = crgetrgid(cp);
un32.prcred.pr_sgid = crgetsgid(cp);
un32.prcred.pr_ngroups = crgetngroups(cp);
if (copyout(&un32.prcred, cmaddr, sizeof (un32.prcred)))
un.prcred.pr_euid = crgetuid(cp);
un.prcred.pr_ruid = crgetruid(cp);
un.prcred.pr_suid = crgetsuid(cp);
un.prcred.pr_egid = crgetgid(cp);
un.prcred.pr_rgid = crgetrgid(cp);
un.prcred.pr_sgid = crgetsgid(cp);
un.prcred.pr_ngroups = crgetngroups(cp);
if (copyout(&un.prcred, cmaddr, sizeof (un.prcred)))
extern void cred2prcred(const cred_t *, struct prcred *);
struct prcred;
struct prcred;
extern void prgetcred(proc_t *, struct prcred *);