Ever since commit 28d838cc4dfe ("Fix ptrace self-attach rule") it has
been impossible to attach another thread in the same thread group.

Remove the code from __ptrace_detach that was trying to support
detaching from a thread in the same thread group.  The code is
dead and I can not make sense of what it is trying to do.

Signed-off-by: "Eric W. Biederman" <ebied...@xmission.com>
---
 kernel/ptrace.c | 24 +++---------------------
 1 file changed, 3 insertions(+), 21 deletions(-)

diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 328a34a99124..ca0e47691229 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -526,19 +526,6 @@ static int ptrace_traceme(void)
        return ret;
 }
 
-/*
- * Called with irqs disabled, returns true if childs should reap themselves.
- */
-static int ignoring_children(struct sighand_struct *sigh)
-{
-       int ret;
-       spin_lock(&sigh->siglock);
-       ret = (sigh->action[SIGCHLD-1].sa.sa_handler == SIG_IGN) ||
-             (sigh->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDWAIT);
-       spin_unlock(&sigh->siglock);
-       return ret;
-}
-
 /*
  * Called with tasklist_lock held for writing.
  * Unlink a traced task, and clean it up if it was a traced zombie.
@@ -565,14 +552,9 @@ static bool __ptrace_detach(struct task_struct *tracer, 
struct task_struct *p)
 
        dead = !thread_group_leader(p);
 
-       if (!dead && thread_group_empty(p)) {
-               if (!same_thread_group(p->real_parent, tracer))
-                       dead = do_notify_parent(p, p->exit_signal);
-               else if (ignoring_children(tracer->sighand)) {
-                       __wake_up_parent(p, tracer);
-                       dead = true;
-               }
-       }
+       if (!dead && thread_group_empty(p))
+               dead = do_notify_parent(p, p->exit_signal);
+
        /* Mark it as in the process of being reaped. */
        if (dead)
                p->exit_state = EXIT_DEAD;
-- 
2.35.3


_______________________________________________
linux-um mailing list
linux-um@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-um

Reply via email to