Changeset View
Changeset View
Standalone View
Standalone View
sys/security/mac/mac_syscalls.c
Show First 20 Lines • Show All 208 Lines • ▼ Show 20 Lines | if (error) { | ||||
crfree(newcred); | crfree(newcred); | ||||
goto out; | goto out; | ||||
} | } | ||||
setsugid(p); | setsugid(p); | ||||
crcopy(newcred, oldcred); | crcopy(newcred, oldcred); | ||||
mac_cred_relabel(newcred, intlabel); | mac_cred_relabel(newcred, intlabel); | ||||
proc_set_cred(p, newcred); | proc_set_cred(p, newcred); | ||||
FOREACH_THREAD_IN_PROC(p, td) { | |||||
thread_lock(td); | |||||
if (TD_IS_SUGID(td)) { | |||||
mac_cred_relabel(td->td_ucred, intlabel); | |||||
} | |||||
thread_unlock(td); | |||||
} | |||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
crfree(oldcred); | crfree(oldcred); | ||||
mac_proc_vm_revoke(td); | mac_proc_vm_revoke(td); | ||||
out: | out: | ||||
mac_cred_label_free(intlabel); | mac_cred_label_free(intlabel); | ||||
return (error); | return (error); | ||||
▲ Show 20 Lines • Show All 437 Lines • Show Last 20 Lines |