Skip to content

Commit

Permalink
staging: android: ram_console: honor dmesg_restrict
Browse files Browse the repository at this point in the history
The Linux kernel has a setting called dmesg_restrict. When true,
only processes with CAP_SYSLOG can view the kernel dmesg logs. This
helps prevent leaking of kernel information into user space.

On Android, it's possible to bypass these restrictions by viewing
/proc/last_kmsg.

This change makes /proc/last_kmsg require the same permissions as
dmesg.

CC: Android Kernel Team <kernel-team@android.com>
Signed-off-by: Nick Kralevich <nnk@google.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Nick Kralevich authored and Greg Kroah-Hartman committed Mar 8, 2012
1 parent 3a21138 commit dd09979
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/staging/android/ram_console.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ static ssize_t ram_console_read_old(struct file *file, char __user *buf,
char *str;
int ret;

if (dmesg_restrict && !capable(CAP_SYSLOG))
return -EPERM;

/* Main last_kmsg log */
if (pos < old_log_size) {
count = min(len, (size_t)(old_log_size - pos));
Expand Down

0 comments on commit dd09979

Please sign in to comment.