Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_exec.c
Show First 20 Lines • Show All 675 Lines • ▼ Show 20 Lines | if (disallow_high_osrel && | ||||
P_OSREL_MAJOR(p->p_osrel) > P_OSREL_MAJOR(__FreeBSD_version)) { | P_OSREL_MAJOR(p->p_osrel) > P_OSREL_MAJOR(__FreeBSD_version)) { | ||||
error = ENOEXEC; | error = ENOEXEC; | ||||
uprintf("Osrel %d for image %s too high\n", p->p_osrel, | uprintf("Osrel %d for image %s too high\n", p->p_osrel, | ||||
imgp->execpath != NULL ? imgp->execpath : "<unresolved>"); | imgp->execpath != NULL ? imgp->execpath : "<unresolved>"); | ||||
vn_lock(imgp->vp, LK_SHARED | LK_RETRY); | vn_lock(imgp->vp, LK_SHARED | LK_RETRY); | ||||
goto exec_fail_dealloc; | goto exec_fail_dealloc; | ||||
} | } | ||||
/* ABI enforces the use of Capsicum. Switch into capabilities mode. */ | |||||
if (SV_PROC_FLAG(p, SV_CAPSICUM)) | |||||
sys_cap_enter(td, NULL); | |||||
/* | /* | ||||
* Copy out strings (args and env) and initialize stack base. | * Copy out strings (args and env) and initialize stack base. | ||||
*/ | */ | ||||
error = (*p->p_sysent->sv_copyout_strings)(imgp, &stack_base); | error = (*p->p_sysent->sv_copyout_strings)(imgp, &stack_base); | ||||
if (error != 0) { | if (error != 0) { | ||||
vn_lock(imgp->vp, LK_SHARED | LK_RETRY); | vn_lock(imgp->vp, LK_SHARED | LK_RETRY); | ||||
goto exec_fail_dealloc; | goto exec_fail_dealloc; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 1,337 Lines • Show Last 20 Lines |