summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-05-16 13:25:33 +0200
committerChristian Brauner <brauner@kernel.org>2025-05-21 13:59:12 +0200
commitc72d9146375fa12becb4657b4d2105a460bfb058 (patch)
tree1637d90e988a5fa9430ad247f7a06d4df1d1f95b
parent1d8db6fd698de1f73b1a7d72aea578fdd18d9a87 (diff)
coredump: show supported coredump modes
Allow userspace to discover what coredump modes are supported. Link: https://lore.kernel.org/20250516-work-coredump-socket-v8-6-664f3caf2516@kernel.org Acked-by: Luca Boccassi <luca.boccassi@gmail.com> Reviewed-by: Jann Horn <jannh@google.com> Reviewed-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/coredump.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/fs/coredump.c b/fs/coredump.c
index b0ee99992ea5..84cddfe6e970 100644
--- a/fs/coredump.c
+++ b/fs/coredump.c
@@ -1248,6 +1248,12 @@ static int proc_dostring_coredump(const struct ctl_table *table, int write,
static const unsigned int core_file_note_size_min = CORE_FILE_NOTE_SIZE_DEFAULT;
static const unsigned int core_file_note_size_max = CORE_FILE_NOTE_SIZE_MAX;
+static char core_modes[] = {
+ "file\npipe"
+#ifdef CONFIG_UNIX
+ "\nsocket"
+#endif
+};
static const struct ctl_table coredump_sysctls[] = {
{
@@ -1291,6 +1297,13 @@ static const struct ctl_table coredump_sysctls[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
+ {
+ .procname = "core_modes",
+ .data = core_modes,
+ .maxlen = sizeof(core_modes) - 1,
+ .mode = 0444,
+ .proc_handler = proc_dostring,
+ },
};
static int __init init_fs_coredump_sysctls(void)