[RFC][PATCH v2 0/5] exec: Fixing ptrace'd mulit-threaded hang

From: Eric W. Biederman
Date: Sun Apr 02 2017 - 18:55:44 EST



Oleg your comment about kill being able to send signal was an important
dimension I had missed thank you.

This patchset just denies the case of SIGHAND between different
multi-threaded processes as I don't think anyone cares. I can
fix that if anyone cares but I am not certain we actally do.

I have reworked the ptrace notification code so that we always
send notifications if we can but don't wait if it is a coredump
or an exec. Which simpilifies the code nicely.

A few more tweaks are needed before a final version but I think
things are compelling.

fs/exec.c | 23 ++-------
include/linux/sched/signal.h | 1 +
kernel/exit.c | 20 ++++----
kernel/fork.c | 14 +++++-
kernel/ptrace.c | 4 ++
kernel/signal.c | 112 +++++++++++++++++++------------------------
6 files changed, 78 insertions(+), 96 deletions(-)

Eric W. Biederman (5):
ptrace: Don't wait in PTRACE_O_TRACEEXIT for exec or coredump
sighand: Count each thread group once in sighand_struct
clone: Disallown CLONE_THREAD with a shared sighand_struct
exec: If possible don't wait for ptraced threads to be reaped
signal: Don't allow accessing signal_struct by old threads after exec

Eric