]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Add Oleg's fix for subthread exit when ptrace set and parent ignores SIGCHLD
authorChris Wright <chrisw@osdl.org>
Mon, 14 Nov 2005 03:23:45 +0000 (19:23 -0800)
committerChris Wright <chrisw@osdl.org>
Mon, 14 Nov 2005 03:23:45 +0000 (19:23 -0800)
queue/ptrace-auto-reap-fix.patch [new file with mode: 0644]
queue/series

diff --git a/queue/ptrace-auto-reap-fix.patch b/queue/ptrace-auto-reap-fix.patch
new file mode 100644 (file)
index 0000000..9402b01
--- /dev/null
@@ -0,0 +1,28 @@
+From nobody Mon Sep 17 00:00:00 2001
+Subject: [PATCH] Don't auto-reap traced children
+From: Oleg Nesterov <oleg@tv-sign.ru>
+Date: 1131632538 +0300
+
+If a task is being traced we never auto-reap it even if it might look
+like its parent doesn't care. The tracer obviously _does_ care.
+
+Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+Signed-off-by: Chris Wright <chrisw@osdl.org>
+---
+
+ kernel/signal.c |    2 +-
+ 1 files changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux-2.6.14.y/kernel/signal.c
+===================================================================
+--- linux-2.6.14.y.orig/kernel/signal.c
++++ linux-2.6.14.y/kernel/signal.c
+@@ -1524,7 +1524,7 @@ void do_notify_parent(struct task_struct
+       psig = tsk->parent->sighand;
+       spin_lock_irqsave(&psig->siglock, flags);
+-      if (sig == SIGCHLD &&
++      if (!tsk->ptrace && sig == SIGCHLD &&
+           (psig->action[SIGCHLD-1].sa.sa_handler == SIG_IGN ||
+            (psig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDWAIT))) {
+               /*
index 4a1a2e3ab8ba31fb3a29b848576e930cd3af97bc..ec6ff0414b95712325a6a7370e5bdf3982b944d9 100644 (file)
@@ -1 +1,2 @@
 ppc64-memory-model-depends-on-NUMA.patch
+ptrace-auto-reap-fix.patch