linux/fs/proc
Oleg Nesterov 720ae73462 proc: actually make proc_fd_permission() thread-friendly
commit 54708d2858 upstream.

The commit 96d0df79f2 ("proc: make proc_fd_permission() thread-friendly")
fixed the access to /proc/self/fd from sub-threads, but introduced another
problem: a sub-thread can't access /proc/<tid>/fd/ or /proc/thread-self/fd
if generic_permission() fails.

Change proc_fd_permission() to check same_thread_group(pid_task(), current).

Fixes: 96d0df79f2 ("proc: make proc_fd_permission() thread-friendly")
Reported-by: "Jin, Yihua" <yihua.jin@intel.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
History 2015-12-13 17:49:12 +00:00
..
array.c CAPABILITIES: remove undefined caps from all processes 2014-09-17 09:21:53 -07:00
base.c userns: Add a knob to disable setgroups on a per user namespace basis 2015-01-15 10:43:58 +00:00
cmdline.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
consoles.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
cpuinfo.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
devices.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
fd.c proc: actually make proc_fd_permission() thread-friendly 2015-12-13 17:49:12 +00:00
fd.h proc: Move proc_fd() to fs/proc/fd.h 2013-05-01 17:29:39 -04:00
generic.c proc: Allow creating permanently empty directories that serve as mount points 2015-07-15 10:01:06 +01:00
inode.c proc: Allow creating permanently empty directories that serve as mount points 2015-07-15 10:01:06 +01:00
internal.h proc: Allow creating permanently empty directories that serve as mount points 2015-07-15 10:01:06 +01:00
interrupts.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
Kconfig kcore: add Kconfig help text 2013-11-13 12:09:33 +09:00
kcore.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
kmsg.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
loadavg.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
Makefile of: remove /proc/device-tree 2014-03-11 20:48:32 +00:00
meminfo.c fs/proc/meminfo: meminfo_proc_show(): fix typo in comment 2014-04-07 16:36:04 -07:00
namespaces.c new helper: readlink_copy() 2014-04-01 23:19:15 -04:00
nommu.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
page.c mm: close PageTail race 2014-03-04 07:55:47 -08:00
proc_net.c [readdir] convert procfs 2013-06-29 12:56:32 +04:00
proc_sysctl.c sysctl: Allow creating permanently empty directories that serve as mountpoints. 2015-07-15 10:01:06 +01:00
proc_tty.c proc: use seq_puts()/seq_putc() where possible 2011-01-13 08:03:16 -08:00
root.c proc: Allow creating permanently empty directories that serve as mount points 2015-07-15 10:01:06 +01:00
self.c new helper: readlink_copy() 2014-04-01 23:19:15 -04:00
softirqs.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
stat.c genirq: Prevent proc race against freeing of irq descriptors 2015-01-15 10:44:31 +00:00
task_mmu.c pagemap: do not leak physical addresses to non-privileged userspace 2015-03-30 11:11:38 +01:00
task_nommu.c seq_file: remove "%n" usage from seq_file users 2013-11-15 09:32:20 +09:00
uptime.c cputime: Default implementation of nsecs -> cputime conversion 2014-03-13 15:56:43 +01:00
version.c fs/proc: don't use module_init for non-modular core code 2014-01-23 16:37:02 -08:00
vmcore.c fs/proc/vmcore.c: remove NULL assignment to static 2014-06-06 16:08:12 -07:00