ptrace: support for attaching child_process to parent

refs #885
This commit is contained in:
Ken Sato
2018-02-22 09:47:59 +09:00
parent c260b5c6f3
commit f46287a711
2 changed files with 61 additions and 18 deletions

View File

@@ -6105,7 +6105,6 @@ static int ptrace_attach(int pid)
}
parent = child->parent;
#ifdef POSTK_DEBUG_TEMP_FIX_53 /* attach for child-process fix. */
dkprintf("ptrace_attach() parent->pid=%d\n", parent->pid);
mcs_rwlock_writer_lock_noirq(&parent->children_lock, &childlock);
@@ -6117,23 +6116,6 @@ static int ptrace_attach(int pid)
list_add_tail(&child->siblings_list, &proc->children_list);
child->parent = proc;
mcs_rwlock_writer_unlock_noirq(&proc->children_lock, &childlock);
#else /* POSTK_DEBUG_TEMP_FIX_53 */
/* XXX: tmp */
if (parent != proc) {
dkprintf("ptrace_attach() parent->pid=%d\n", parent->pid);
mcs_rwlock_writer_lock_noirq(&parent->children_lock, &childlock);
list_del(&child->siblings_list);
list_add_tail(&child->ptraced_siblings_list, &parent->ptraced_children_list);
mcs_rwlock_writer_unlock_noirq(&parent->children_lock, &childlock);
mcs_rwlock_writer_lock_noirq(&proc->children_lock, &childlock);
list_add_tail(&child->siblings_list, &proc->children_list);
child->parent = proc;
mcs_rwlock_writer_unlock_noirq(&proc->children_lock, &childlock);
}
#endif /* POSTK_DEBUG_TEMP_FIX_53 */
child->ptrace = PT_TRACED | PT_TRACE_EXEC;