Lines Matching refs:oldcred

873 	struct ucred *newcred, *oldcred;  in sys_setuid()  local
886 oldcred = crcopysafe(p, newcred); in sys_setuid()
889 error = mac_cred_check_setuid(oldcred, uid); in sys_setuid()
911 if (uid != oldcred->cr_ruid && /* allow setuid(getuid()) */ in sys_setuid()
913 uid != oldcred->cr_svuid && /* allow setuid(saved gid) */ in sys_setuid()
916 uid != oldcred->cr_uid && /* allow setuid(geteuid()) */ in sys_setuid()
918 (error = priv_check_cred(oldcred, PRIV_CRED_SETUID)) != 0) in sys_setuid()
928 uid == oldcred->cr_uid || in sys_setuid()
931 priv_check_cred(oldcred, PRIV_CRED_SETUID) == 0) in sys_setuid()
937 if (uid != oldcred->cr_ruid) { in sys_setuid()
948 if (uid != oldcred->cr_svuid) { in sys_setuid()
957 if (uid != oldcred->cr_uid) { in sys_setuid()
966 racct_proc_ucred_changed(p, oldcred, newcred); in sys_setuid()
975 crfree(oldcred); in sys_setuid()
995 struct ucred *newcred, *oldcred; in sys_seteuid() local
1008 oldcred = crcopysafe(p, newcred); in sys_seteuid()
1011 error = mac_cred_check_seteuid(oldcred, euid); in sys_seteuid()
1016 if (euid != oldcred->cr_ruid && /* allow seteuid(getuid()) */ in sys_seteuid()
1017 euid != oldcred->cr_svuid && /* allow seteuid(saved uid) */ in sys_seteuid()
1018 (error = priv_check_cred(oldcred, PRIV_CRED_SETEUID)) != 0) in sys_seteuid()
1024 if (oldcred->cr_uid != euid) { in sys_seteuid()
1031 crfree(oldcred); in sys_seteuid()
1051 struct ucred *newcred, *oldcred; in sys_setgid() local
1059 oldcred = crcopysafe(p, newcred); in sys_setgid()
1062 error = mac_cred_check_setgid(oldcred, gid); in sys_setgid()
1078 if (gid != oldcred->cr_rgid && /* allow setgid(getgid()) */ in sys_setgid()
1080 gid != oldcred->cr_svgid && /* allow setgid(saved gid) */ in sys_setgid()
1083 gid != oldcred->cr_gid && /* allow setgid(getegid()) */ in sys_setgid()
1085 (error = priv_check_cred(oldcred, PRIV_CRED_SETGID)) != 0) in sys_setgid()
1095 gid == oldcred->cr_gid || in sys_setgid()
1098 priv_check_cred(oldcred, PRIV_CRED_SETGID) == 0) in sys_setgid()
1104 if (oldcred->cr_rgid != gid) { in sys_setgid()
1115 if (oldcred->cr_svgid != gid) { in sys_setgid()
1124 if (oldcred->cr_gid != gid) { in sys_setgid()
1130 crfree(oldcred); in sys_setgid()
1149 struct ucred *newcred, *oldcred; in sys_setegid() local
1157 oldcred = crcopysafe(p, newcred); in sys_setegid()
1160 error = mac_cred_check_setegid(oldcred, egid); in sys_setegid()
1165 if (egid != oldcred->cr_rgid && /* allow setegid(getgid()) */ in sys_setegid()
1166 egid != oldcred->cr_svgid && /* allow setegid(saved gid) */ in sys_setegid()
1167 (error = priv_check_cred(oldcred, PRIV_CRED_SETEGID)) != 0) in sys_setegid()
1170 if (oldcred->cr_gid != egid) { in sys_setegid()
1176 crfree(oldcred); in sys_setegid()
1234 struct ucred *newcred, *oldcred; in kern_setgroups() local
1252 oldcred = crcopysafe(p, newcred); in kern_setgroups()
1257 mac_cred_check_setgroups(oldcred, 1, oldcred->cr_groups) : in kern_setgroups()
1258 mac_cred_check_setgroups(oldcred, ngrp, groups); in kern_setgroups()
1263 error = priv_check_cred(oldcred, PRIV_CRED_SETGROUPS); in kern_setgroups()
1281 crfree(oldcred); in kern_setgroups()
1301 struct ucred *newcred, *oldcred; in sys_setreuid() local
1314 oldcred = crcopysafe(p, newcred); in sys_setreuid()
1317 error = mac_cred_check_setreuid(oldcred, ruid, euid); in sys_setreuid()
1322 if (((ruid != (uid_t)-1 && ruid != oldcred->cr_ruid && in sys_setreuid()
1323 ruid != oldcred->cr_svuid) || in sys_setreuid()
1324 (euid != (uid_t)-1 && euid != oldcred->cr_uid && in sys_setreuid()
1325 euid != oldcred->cr_ruid && euid != oldcred->cr_svuid)) && in sys_setreuid()
1326 (error = priv_check_cred(oldcred, PRIV_CRED_SETREUID)) != 0) in sys_setreuid()
1329 if (euid != (uid_t)-1 && oldcred->cr_uid != euid) { in sys_setreuid()
1333 if (ruid != (uid_t)-1 && oldcred->cr_ruid != ruid) { in sys_setreuid()
1344 racct_proc_ucred_changed(p, oldcred, newcred); in sys_setreuid()
1354 crfree(oldcred); in sys_setreuid()
1376 struct ucred *newcred, *oldcred; in sys_setregid() local
1386 oldcred = crcopysafe(p, newcred); in sys_setregid()
1389 error = mac_cred_check_setregid(oldcred, rgid, egid); in sys_setregid()
1394 if (((rgid != (gid_t)-1 && rgid != oldcred->cr_rgid && in sys_setregid()
1395 rgid != oldcred->cr_svgid) || in sys_setregid()
1396 (egid != (gid_t)-1 && egid != oldcred->cr_gid && in sys_setregid()
1397 egid != oldcred->cr_rgid && egid != oldcred->cr_svgid)) && in sys_setregid()
1398 (error = priv_check_cred(oldcred, PRIV_CRED_SETREGID)) != 0) in sys_setregid()
1401 if (egid != (gid_t)-1 && oldcred->cr_gid != egid) { in sys_setregid()
1405 if (rgid != (gid_t)-1 && oldcred->cr_rgid != rgid) { in sys_setregid()
1416 crfree(oldcred); in sys_setregid()
1441 struct ucred *newcred, *oldcred; in sys_setresuid() local
1456 oldcred = crcopysafe(p, newcred); in sys_setresuid()
1459 error = mac_cred_check_setresuid(oldcred, ruid, euid, suid); in sys_setresuid()
1464 if (((ruid != (uid_t)-1 && ruid != oldcred->cr_ruid && in sys_setresuid()
1465 ruid != oldcred->cr_svuid && in sys_setresuid()
1466 ruid != oldcred->cr_uid) || in sys_setresuid()
1467 (euid != (uid_t)-1 && euid != oldcred->cr_ruid && in sys_setresuid()
1468 euid != oldcred->cr_svuid && in sys_setresuid()
1469 euid != oldcred->cr_uid) || in sys_setresuid()
1470 (suid != (uid_t)-1 && suid != oldcred->cr_ruid && in sys_setresuid()
1471 suid != oldcred->cr_svuid && in sys_setresuid()
1472 suid != oldcred->cr_uid)) && in sys_setresuid()
1473 (error = priv_check_cred(oldcred, PRIV_CRED_SETRESUID)) != 0) in sys_setresuid()
1476 if (euid != (uid_t)-1 && oldcred->cr_uid != euid) { in sys_setresuid()
1480 if (ruid != (uid_t)-1 && oldcred->cr_ruid != ruid) { in sys_setresuid()
1484 if (suid != (uid_t)-1 && oldcred->cr_svuid != suid) { in sys_setresuid()
1490 racct_proc_ucred_changed(p, oldcred, newcred); in sys_setresuid()
1500 crfree(oldcred); in sys_setresuid()
1528 struct ucred *newcred, *oldcred; in sys_setresgid() local
1540 oldcred = crcopysafe(p, newcred); in sys_setresgid()
1543 error = mac_cred_check_setresgid(oldcred, rgid, egid, sgid); in sys_setresgid()
1548 if (((rgid != (gid_t)-1 && rgid != oldcred->cr_rgid && in sys_setresgid()
1549 rgid != oldcred->cr_svgid && in sys_setresgid()
1550 rgid != oldcred->cr_gid) || in sys_setresgid()
1551 (egid != (gid_t)-1 && egid != oldcred->cr_rgid && in sys_setresgid()
1552 egid != oldcred->cr_svgid && in sys_setresgid()
1553 egid != oldcred->cr_gid) || in sys_setresgid()
1554 (sgid != (gid_t)-1 && sgid != oldcred->cr_rgid && in sys_setresgid()
1555 sgid != oldcred->cr_svgid && in sys_setresgid()
1556 sgid != oldcred->cr_gid)) && in sys_setresgid()
1557 (error = priv_check_cred(oldcred, PRIV_CRED_SETRESGID)) != 0) in sys_setresgid()
1560 if (egid != (gid_t)-1 && oldcred->cr_gid != egid) { in sys_setresgid()
1564 if (rgid != (gid_t)-1 && oldcred->cr_rgid != rgid) { in sys_setresgid()
1568 if (sgid != (gid_t)-1 && oldcred->cr_svgid != sgid) { in sys_setresgid()
1574 crfree(oldcred); in sys_setresgid()
2667 struct ucred *const oldcred = p->p_ucred; in _proc_set_cred() local
2669 MPASS(oldcred != NULL); in _proc_set_cred()
2676 if (newcred->cr_ruidinfo != oldcred->cr_ruidinfo) { in _proc_set_cred()
2689 if (priv_check_cred(oldcred, PRIV_PROC_LIMIT) != 0) in _proc_set_cred()
2695 mtx_lock(&oldcred->cr_mtx); in _proc_set_cred()
2696 KASSERT(oldcred->cr_users > 0, ("%s: users %d not > 0 on cred %p", in _proc_set_cred()
2697 __func__, oldcred->cr_users, oldcred)); in _proc_set_cred()
2698 oldcred->cr_users--; in _proc_set_cred()
2699 mtx_unlock(&oldcred->cr_mtx); in _proc_set_cred()
2703 if (newcred->cr_ruidinfo != oldcred->cr_ruidinfo) in _proc_set_cred()
2704 (void)chgproccnt(oldcred->cr_ruidinfo, -1, 0); in _proc_set_cred()
2746 struct ucred *oldcred; in crcopysafe() local
2751 oldcred = p->p_ucred; in crcopysafe()
2752 while (cr->cr_agroups < oldcred->cr_agroups) { in crcopysafe()
2753 groups = oldcred->cr_agroups; in crcopysafe()
2757 oldcred = p->p_ucred; in crcopysafe()
2759 crcopy(cr, oldcred); in crcopysafe()
2761 return (oldcred); in crcopysafe()