Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_exec.c
Show First 20 Lines • Show All 900 Lines • ▼ Show 20 Lines | exec_fail_dealloc: | ||||
if (imgp->object != NULL) | if (imgp->object != NULL) | ||||
vm_object_deallocate(imgp->object); | vm_object_deallocate(imgp->object); | ||||
free(imgp->freepath, M_TEMP); | free(imgp->freepath, M_TEMP); | ||||
if (error == 0) { | if (error == 0) { | ||||
if (p->p_ptevents & PTRACE_EXEC) { | if (p->p_ptevents & PTRACE_EXEC) { | ||||
PROC_LOCK(p); | PROC_LOCK(p); | ||||
if (p->p_ptevents & PTRACE_EXEC) | if (p->p_ptevents & PTRACE_EXEC) { | ||||
thread_lock(td); | |||||
td->td_flags |= TDF_ASTPENDING; | |||||
thread_unlock(td); | |||||
td->td_dbgflags |= TDB_EXEC; | td->td_dbgflags |= TDB_EXEC; | ||||
} | |||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
} | } | ||||
} else { | } else { | ||||
exec_fail: | exec_fail: | ||||
/* we're done here, clear P_INEXEC */ | /* we're done here, clear P_INEXEC */ | ||||
PROC_LOCK(p); | PROC_LOCK(p); | ||||
p->p_flag &= ~P_INEXEC; | p->p_flag &= ~P_INEXEC; | ||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
▲ Show 20 Lines • Show All 924 Lines • Show Last 20 Lines |