exec: Check for a pending fatal signal instead of core_state
authorEric W. Biederman <ebiederm@xmission.com>
Fri, 3 Sep 2021 15:26:05 +0000 (10:26 -0500)
committerEric W. Biederman <ebiederm@xmission.com>
Wed, 6 Oct 2021 16:27:55 +0000 (11:27 -0500)
commit7e3c4fb7fc19bcf20657de3edb718ec1b26c7df3
tree4105e71b67facde85813e97980122b6df56f0b34
parent4f627af8e6068892cafe031df6c14e8a0aaaa426
exec: Check for a pending fatal signal instead of core_state

Prevent exec continuing when a fatal signal is pending by replacing
mmap_read_lock with mmap_read_lock_killable.  This is always the right
thing to do as userspace will never observe an exec complete when
there is a fatal signal pending.

With that change it becomes unnecessary to explicitly test for a core
dump in progress.  In coredump_wait zap_threads arranges under
mmap_write_lock for all tasks that use a mm to also have SIGKILL
pending, which means mmap_read_lock_killable will always return -EINTR
when old_mm->core_state is present.

Link: https://lkml.kernel.org/r/87fstux27w.fsf@disp2133
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
fs/exec.c