Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/subr_syscall.c
Show First 20 Lines • Show All 202 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
struct proc *p; | struct proc *p; | ||||
struct syscall_args *sa; | struct syscall_args *sa; | ||||
ksiginfo_t ksi; | ksiginfo_t ksi; | ||||
int traced; | int traced; | ||||
KASSERT((td->td_pflags & TDP_FORKING) == 0, | KASSERT((td->td_pflags & TDP_FORKING) == 0, | ||||
("fork() did not clear TDP_FORKING upon completion")); | ("fork() did not clear TDP_FORKING upon completion")); | ||||
KASSERT(td->td_errno != ERELOOKUP, | |||||
("ERELOOKUP not consumed syscall %d", td->td_sa.code)); | |||||
p = td->td_proc; | p = td->td_proc; | ||||
sa = &td->td_sa; | sa = &td->td_sa; | ||||
if (__predict_false(td->td_errno == ENOTCAPABLE || | if (__predict_false(td->td_errno == ENOTCAPABLE || | ||||
td->td_errno == ECAPMODE)) { | td->td_errno == ECAPMODE)) { | ||||
if ((trap_enotcap || | if ((trap_enotcap || | ||||
(p->p_flag2 & P2_TRAPCAP) != 0) && IN_CAPABILITY_MODE(td)) { | (p->p_flag2 & P2_TRAPCAP) != 0) && IN_CAPABILITY_MODE(td)) { | ||||
ksiginfo_init_trap(&ksi); | ksiginfo_init_trap(&ksi); | ||||
▲ Show 20 Lines • Show All 45 Lines • Show Last 20 Lines |