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