Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e57a5059 authored by Roland McGrath's avatar Roland McGrath Committed by Linus Torvalds
Browse files

[PATCH] fix non-leader exec under ptrace



This reverts most of commit 30e0fca6.
It broke the case of non-leader MT exec when ptraced.
I think the bug it was intended to fix was already addressed by commit
788e05a6.

Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
Acked-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent c06511d1
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -56,10 +56,6 @@ void ptrace_untrace(task_t *child)
			signal_wake_up(child, 1);
		}
	}
	if (child->signal->flags & SIGNAL_GROUP_EXIT) {
		sigaddset(&child->pending.signal, SIGKILL);
		signal_wake_up(child, 1);
	}
	spin_unlock(&child->sighand->siglock);
}

@@ -81,6 +77,7 @@ void __ptrace_unlink(task_t *child)
		add_parent(child);
	}

	if (child->state == TASK_TRACED)
		ptrace_untrace(child);
}

+2 −2
Original line number Diff line number Diff line
@@ -1754,9 +1754,9 @@ int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka,
			/* Let the debugger run.  */
			ptrace_stop(signr, signr, info);

			/* We're back.  Did the debugger cancel the sig or group_exit? */
			/* We're back.  Did the debugger cancel the sig?  */
			signr = current->exit_code;
			if (signr == 0 || current->signal->flags & SIGNAL_GROUP_EXIT)
			if (signr == 0)
				continue;

			current->exit_code = 0;