mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-26 22:07:51 +00:00
1af87d9126
3.2.16 is the final release in the 3.2-stable series by Greg KH. Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
73 lines
2.4 KiB
Diff
73 lines
2.4 KiB
Diff
From 444559e0fe29e31b1a95a3668c530bd1aed732ce Mon Sep 17 00:00:00 2001
|
|
From: Kees Cook <keescook@chromium.org>
|
|
Date: Wed, 4 Apr 2012 11:40:19 -0700
|
|
Subject: [PATCH 44/60] sysctl: fix write access to
|
|
dmesg_restrict/kptr_restrict
|
|
|
|
commit 620f6e8e855d6d447688a5f67a4e176944a084e8 upstream.
|
|
|
|
Commit bfdc0b4 adds code to restrict access to dmesg_restrict,
|
|
however, it incorrectly alters kptr_restrict rather than
|
|
dmesg_restrict.
|
|
|
|
The original patch from Richard Weinberger
|
|
(https://lkml.org/lkml/2011/3/14/362) alters dmesg_restrict as
|
|
expected, and so the patch seems to have been misapplied.
|
|
|
|
This adds the CAP_SYS_ADMIN check to both dmesg_restrict and
|
|
kptr_restrict, since both are sensitive.
|
|
|
|
Reported-by: Phillip Lougher <plougher@redhat.com>
|
|
Signed-off-by: Kees Cook <keescook@chromium.org>
|
|
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
|
|
Acked-by: Richard Weinberger <richard@nod.at>
|
|
Signed-off-by: James Morris <james.l.morris@oracle.com>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
---
|
|
kernel/sysctl.c | 8 ++++----
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
|
|
index ae27196..ea7ec7f 100644
|
|
--- a/kernel/sysctl.c
|
|
+++ b/kernel/sysctl.c
|
|
@@ -166,7 +166,7 @@ static int proc_taint(struct ctl_table *table, int write,
|
|
#endif
|
|
|
|
#ifdef CONFIG_PRINTK
|
|
-static int proc_dmesg_restrict(struct ctl_table *table, int write,
|
|
+static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
|
|
void __user *buffer, size_t *lenp, loff_t *ppos);
|
|
#endif
|
|
|
|
@@ -713,7 +713,7 @@ static struct ctl_table kern_table[] = {
|
|
.data = &dmesg_restrict,
|
|
.maxlen = sizeof(int),
|
|
.mode = 0644,
|
|
- .proc_handler = proc_dointvec_minmax,
|
|
+ .proc_handler = proc_dointvec_minmax_sysadmin,
|
|
.extra1 = &zero,
|
|
.extra2 = &one,
|
|
},
|
|
@@ -722,7 +722,7 @@ static struct ctl_table kern_table[] = {
|
|
.data = &kptr_restrict,
|
|
.maxlen = sizeof(int),
|
|
.mode = 0644,
|
|
- .proc_handler = proc_dmesg_restrict,
|
|
+ .proc_handler = proc_dointvec_minmax_sysadmin,
|
|
.extra1 = &zero,
|
|
.extra2 = &two,
|
|
},
|
|
@@ -2422,7 +2422,7 @@ static int proc_taint(struct ctl_table *table, int write,
|
|
}
|
|
|
|
#ifdef CONFIG_PRINTK
|
|
-static int proc_dmesg_restrict(struct ctl_table *table, int write,
|
|
+static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
|
|
void __user *buffer, size_t *lenp, loff_t *ppos)
|
|
{
|
|
if (write && !capable(CAP_SYS_ADMIN))
|
|
--
|
|
1.7.9.5
|
|
|