From c7f42f5bcd6ae56cb5657a20aaf8f4a50565b4d3 Mon Sep 17 00:00:00 2001 From: Mister Oyster Date: Sat, 23 Sep 2017 18:27:49 +0200 Subject: fs: proc: task_mmu: fix proc_mem_open creds for fs access checks Should fix : [ 2201.337557]<0> (0)[672:android.bg]WARNING: at ../../../../../../kernel/meizu/m2note/kernel/ptrace.c:239 __ptrace_may_access+0x164/0x178() [ 2201.337568]<0> (0)[672:android.bg]denying ptrace access check without PTRACE_MODE_*CREDS [ 2201.337583]<0> (0)[672:android.bg]CPU: 0 PID: 672 Comm: android.bg Tainted: G W 3.10.107-NOyster #1 [ 2201.337593]<0> (0)[672:android.bg]Call trace: [ 2201.337609]<0> (0)[672:android.bg][] dump_backtrace+0x0/0x148 [ 2201.337625]<0> (0)[672:android.bg][] show_stack+0x14/0x1c [ 2201.337642]<0> (0)[672:android.bg][] dump_stack+0x20/0x28 [ 2201.337657]<0> (0)[672:android.bg][] warn_slowpath_fmt+0xb0/0x134 [ 2201.337673]<0> (0)[672:android.bg][] __ptrace_may_access+0x164/0x178 [ 2201.337687]<0> (0)[672:android.bg][] ptrace_may_access+0x2c/0x4c [ 2201.337704]<0> (0)[672:android.bg][] mm_access+0x98/0xe0 [ 2201.337722]<0> (0)[672:android.bg][] proc_mem_open+0x2c/0xa0 [ 2201.337739]<0> (0)[672:android.bg][] pid_smaps_open+0x48/0x88 [ 2201.337756]<0> (0)[672:android.bg][] do_dentry_open+0x178/0x268 [ 2201.337772]<0> (0)[672:android.bg][] finish_open+0x30/0x5c [ 2201.337787]<0> (0)[672:android.bg][] do_last.isra.29+0x45c/0xcbc [ 2201.337802]<0> (0)[672:android.bg][] path_openat.isra.30+0xb8/0x494 [ 2201.337817]<0> (0)[672:android.bg][] do_filp_open+0x40/0xb4 [ 2201.337834]<0> (0)[672:android.bg][] do_sys_open+0x118/0x1f0 [ 2201.337851]<0> (0)[672:android.bg][] SyS_openat+0x10/0x18 [ 2201.337861]<0> (0)[672:android.bg]---[ end trace e7bf4b0b0cb5766d ]--- Signed-off-by: Mister Oyster --- fs/proc/task_mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 29922f578..5368b47ae 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -262,7 +262,7 @@ static int proc_maps_open(struct inode *inode, struct file *file, return -ENOMEM; priv->inode = inode; - priv->mm = proc_mem_open(inode, PTRACE_MODE_READ); + priv->mm = proc_mem_open(inode, PTRACE_MODE_READ_FSCREDS); if (IS_ERR(priv->mm)) { int err = PTR_ERR(priv->mm); -- cgit v1.2.3