aboutsummaryrefslogtreecommitdiffstats
path: root/fs/proc/task_mmu.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/proc/task_mmu.c')
-rw-r--r--fs/proc/task_mmu.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 4008c060f7ef..c24d81a5a040 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -3,6 +3,7 @@
3#include <linux/mount.h> 3#include <linux/mount.h>
4#include <linux/seq_file.h> 4#include <linux/seq_file.h>
5#include <linux/highmem.h> 5#include <linux/highmem.h>
6#include <linux/ptrace.h>
6#include <linux/pagemap.h> 7#include <linux/pagemap.h>
7#include <linux/mempolicy.h> 8#include <linux/mempolicy.h>
8 9
@@ -142,6 +143,9 @@ static int show_map_internal(struct seq_file *m, void *v, struct mem_size_stats
142 dev_t dev = 0; 143 dev_t dev = 0;
143 int len; 144 int len;
144 145
146 if (maps_protect && !ptrace_may_attach(task))
147 return -EACCES;
148
145 if (file) { 149 if (file) {
146 struct inode *inode = vma->vm_file->f_path.dentry->d_inode; 150 struct inode *inode = vma->vm_file->f_path.dentry->d_inode;
147 dev = inode->i_sb->s_dev; 151 dev = inode->i_sb->s_dev;
@@ -512,11 +516,22 @@ const struct file_operations proc_maps_operations = {
512#ifdef CONFIG_NUMA 516#ifdef CONFIG_NUMA
513extern int show_numa_map(struct seq_file *m, void *v); 517extern int show_numa_map(struct seq_file *m, void *v);
514 518
519static int show_numa_map_checked(struct seq_file *m, void *v)
520{
521 struct proc_maps_private *priv = m->private;
522 struct task_struct *task = priv->task;
523
524 if (maps_protect && !ptrace_may_attach(task))
525 return -EACCES;
526
527 return show_numa_map(m, v);
528}
529
515static struct seq_operations proc_pid_numa_maps_op = { 530static struct seq_operations proc_pid_numa_maps_op = {
516 .start = m_start, 531 .start = m_start,
517 .next = m_next, 532 .next = m_next,
518 .stop = m_stop, 533 .stop = m_stop,
519 .show = show_numa_map 534 .show = show_numa_map_checked
520}; 535};
521 536
522static int numa_maps_open(struct inode *inode, struct file *file) 537static int numa_maps_open(struct inode *inode, struct file *file)