summaryrefslogtreecommitdiffstats
path: root/kernel/signal.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2024-09-18 11:53:31 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2024-09-18 11:53:31 +0200
commit667495de218c25e909c6b33ed647b592a8a71a02 (patch)
treee93836cdc4b368faaef1168a1a4cfc380ffdf9d5 /kernel/signal.c
parentMerge tag 'pstore-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git... (diff)
parentbinfmt_elf: mseal address zero (diff)
downloadlinux-667495de218c25e909c6b33ed647b592a8a71a02.tar.xz
linux-667495de218c25e909c6b33ed647b592a8a71a02.zip
Merge tag 'execve-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull execve updates from Kees Cook: - binfmt_elf: Dump smaller VMAs first in ELF cores (Brian Mak) - binfmt_elf: mseal address zero (Jeff Xu) - binfmt_elf, coredump: Log the reason of the failed core dumps (Roman Kisel) * tag 'execve-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: binfmt_elf: mseal address zero binfmt_elf: Dump smaller VMAs first in ELF cores binfmt_elf, coredump: Log the reason of the failed core dumps coredump: Standartize and fix logging
Diffstat (limited to 'kernel/signal.c')
-rw-r--r--kernel/signal.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/kernel/signal.c b/kernel/signal.c
index 6f3a5aa39b09..6fe29715105b 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -2888,6 +2888,8 @@ relock:
current->flags |= PF_SIGNALED;
if (sig_kernel_coredump(signr)) {
+ int ret;
+
if (print_fatal_signals)
print_fatal_signal(signr);
proc_coredump_connector(current);
@@ -2899,7 +2901,24 @@ relock:
* first and our do_group_exit call below will use
* that value and ignore the one we pass it.
*/
- do_coredump(&ksig->info);
+ ret = do_coredump(&ksig->info);
+ if (ret)
+ coredump_report_failure("coredump has not been created, error %d",
+ ret);
+ else if (!IS_ENABLED(CONFIG_COREDUMP)) {
+ /*
+ * Coredumps are not available, can't fail collecting
+ * the coredump.
+ *
+ * Leave a note though that the coredump is going to be
+ * not created. This is not an error or a warning as disabling
+ * support in the kernel for coredumps isn't commonplace, and
+ * the user must've built the kernel with the custom config so
+ * let them know all works as desired.
+ */
+ coredump_report("no coredump collected as "
+ "that is disabled in the kernel configuration");
+ }
}
/*