Re: [PATCH 4/9] signal: Factor start_group_exit out of complete_signal
From: Kees Cook <hidden>
Date: 2021-06-26 03:24:11
Also in:
linux-arch, linux-m68k, lkml
From: Kees Cook <hidden>
Date: 2021-06-26 03:24:11
Also in:
linux-arch, linux-m68k, lkml
On Thu, Jun 24, 2021 at 02:01:20PM -0500, Eric W. Biederman wrote:
+static void start_group_exit_locked(struct signal_struct *signal, int exit_code)
+{
+ /*
+ * Start a group exit and wake everybody up.
+ * This way we don't have other threads
+ * running and doing things after a slower
+ * thread has the fatal signal pending.
+ */
+ struct task_struct *t;
+
+ signal->flags = SIGNAL_GROUP_EXIT;
+ signal->group_exit_code = exit_code;
+ signal->group_stop_count = 0;
+ __for_each_thread(signal, t) {
+ task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK);
+
+ /* Don't bother with already dead threads */
+ if (t->exit_state)
+ continue;
+ sigaddset(&t->pending.signal, SIGKILL);
+ signal_wake_up(t, 1);
+ }This both extracts it and changes it. For ease-of-review, maybe split this patch into the move and then the logic changes? -- Kees Cook