2012-08-27 07:12:05

by Alex Kelly

[permalink] [raw]
Subject: [PATCH] fs: Amended coredump-related sysctl functions

This fixes an error introduced in the coredump-header patch in
the coredump removal patch I submitted earlier. It should be squashed
into that patch series so that the Kconfig option to remove coredump
doesn't cause compile-time errors.

Signed-off-by: Alex Kelly <[email protected]>
Reviewed-by: Josh Triplett <[email protected]>
---
Note to Andrew Morton: This is a small fix of an oversight in the coredump
patch I submitted earlier. Could this be squashed into the others in -mm?

kernel/sysctl.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index af57e84..e28542d 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -179,8 +179,10 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,

static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp, loff_t *ppos);
+#ifdef CONFIG_COREDUMP
static int proc_dostring_coredump(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp, loff_t *ppos);
+#endif

#ifdef CONFIG_MAGIC_SYSRQ
/* Note: sysrq code uses it's own private copy */
@@ -2040,12 +2042,14 @@ int proc_dointvec_minmax(struct ctl_table *table, int write,

static void validate_coredump_safety(void)
{
+#ifdef CONFIG_COREDUMP
if (suid_dumpable == SUID_DUMPABLE_SAFE &&
core_pattern[0] != '/' && core_pattern[0] != '|') {
printk(KERN_WARNING "Unsafe core_pattern used with "\
"suid_dumpable=2. Pipe handler or fully qualified "\
"core dump path required.\n");
}
+#endif
}

static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write,
@@ -2057,6 +2061,7 @@ static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write,
return error;
}

+#ifdef CONFIG_COREDUMP
static int proc_dostring_coredump(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp, loff_t *ppos)
{
@@ -2064,7 +2069,9 @@ static int proc_dostring_coredump(struct ctl_table *table, int write,
if (!error)
validate_coredump_safety();
return error;
+ return 0;
}
+#endif

static int __do_proc_doulongvec_minmax(void *data, struct ctl_table *table, int write,
void __user *buffer,
--
1.7.11.4