Re: [PATCH] signal: always allocate siginfo for SI_TKILL

From: Christian Brauner
Date: Sun Feb 03 2019 - 03:39:44 EST


On Sat, Feb 02, 2019 at 09:49:38PM -1000, Jack Andersen wrote:
> The patch titled
> `signal: Never allocate siginfo for SIGKILL or SIGSTOP`
> created a regression for users of PTRACE_GETSIGINFO needing to
> discern signals that were raised via the tgkill syscall.
>
> A notable user of this tgkill+ptrace combination is lldb while
> debugging a multithreaded program. Without the ability to detect a
> SIGSTOP originating from tgkill, lldb does not have a way to
> synchronize on a per-thread basis and falls back to SIGSTOP-ing the
> entire process.
>
> This patch allocates the siginfo as it did previously whenever the
> SI_TKILL code is present.
>
> Signed-off-by: Jack Andersen <jackoalan@xxxxxxxxx>

The commit you're trying to fix has been discussed before wrt to
seccomp tests:

commit 2bd61abead58c82714a1f6fa6beb0fd0df6a6d13
Author: Kees Cook <keescook@xxxxxxxxxxxx>
Date: Thu Dec 6 15:50:38 2018 -0800

selftests/seccomp: Remove SIGSTOP si_pid check

Commit f149b3155744 ("signal: Never allocate siginfo for SIGKILL or SIGSTOP")
means that the seccomp selftest cannot check si_pid under SIGSTOP anymore.
Since it's believed[1] there are no other userspace things depending on the
old behavior, this removes the behavioral check in the selftest, since it's
more a "extra" sanity check (which turns out, maybe, not to have been
useful to test).

[1] https://lkml.kernel.org/r/CAGXu5jJaZAOzP1qFz66tYrtbuywqb+UN2SOA1VLHpCCOiYvYeg@xxxxxxxxxxxxxx

Reported-by: Tycho Andersen <tycho@xxxxxxxx>
Suggested-by: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
Signed-off-by: Shuah Khan <shuah@xxxxxxxxxx>

Ccing Kees on this. Seems that this commit might be worth given that
there's some parts of userspace relying on it and not just internal
kernel tests.

Christian