diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2021-06-23 23:51:49 +0200 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2021-08-27 01:06:41 +0200 |
commit | d21918e5a94a862ccb297b9f2be38574c865fda0 (patch) | |
tree | 19443747e3d286338f0f19bcacff983597c8b727 /kernel/seccomp.c | |
parent | signal/seccomp: Refactor seccomp signal and coredump generation (diff) | |
download | linux-d21918e5a94a862ccb297b9f2be38574c865fda0.tar.xz linux-d21918e5a94a862ccb297b9f2be38574c865fda0.zip |
signal/seccomp: Dump core when there is only one live thread
Replace get_nr_threads with atomic_read(¤t->signal->live) as
that is a more accurate number that is decremented sooner.
Acked-by: Kees Cook <keescook@chromium.org>
Link: https://lkml.kernel.org/r/87lf6z6qbd.fsf_-_@disp2133
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Diffstat (limited to 'kernel/seccomp.c')
-rw-r--r-- | kernel/seccomp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/seccomp.c b/kernel/seccomp.c index abcbd3d2ba54..afa4db097068 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -1264,7 +1264,7 @@ static int __seccomp_filter(int this_syscall, const struct seccomp_data *sd, seccomp_log(this_syscall, SIGSYS, action, true); /* Dump core only if this is the last remaining thread. */ if (action != SECCOMP_RET_KILL_THREAD || - get_nr_threads(current) == 1) { + (atomic_read(¤t->signal->live) == 1)) { /* Show the original registers in the dump. */ syscall_rollback(current, current_pt_regs()); /* Trigger a coredump with SIGSYS */ |