TOMOYO: Change pathname for non-rename()able filesystems.
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Sun, 26 Jun 2011 14:20:23 +0000 (23:20 +0900)
committerJames Morris <jmorris@namei.org>
Tue, 28 Jun 2011 23:31:21 +0000 (09:31 +1000)
commit5625f2e3266319fd29fe4f1c76ccd3f550c79ac4
tree190e96d956213b22da705872094ebdf5272af972
parentbd03a3e4c9a9df0c6b007045fa7fc8889111a478
TOMOYO: Change pathname for non-rename()able filesystems.

TOMOYO wants to use /proc/self/ rather than /proc/$PID/ if $PID matches current
thread's process ID in order to prevent current thread from accessing other
process's information unless needed.

But since procfs can be mounted on various locations (e.g. /proc/ /proc2/ /p/
/tmp/foo/100/p/ ), TOMOYO cannot tell that whether the numeric part in the
string returned by __d_path() represents process ID or not.

Therefore, to be able to convert from $PID to self no matter where procfs is
mounted, this patch changes pathname representations for filesystems which do
not support rename() operation (e.g. proc, sysfs, securityfs).

Examples:
  /proc/self/mounts => proc:/self/mounts
  /sys/kernel/security/ => sys:/kernel/security/
  /dev/pts/0 => devpts:/0

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: James Morris <jmorris@namei.org>
security/tomoyo/file.c
security/tomoyo/realpath.c