fs,userns: Change inode_capable to capable_wrt_inode_uidgid
authorAndy Lutomirski <luto@amacapital.net>
Tue, 10 Jun 2014 19:45:42 +0000 (12:45 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 10 Jun 2014 20:57:22 +0000 (13:57 -0700)
commit23adbe12ef7d3d4195e80800ab36b37bee28cd03
tree000f8f8b3172aa6629b7c9a4148a96549a07acb6
parent5b174fd6472b1d6b6402b30210a212f3fd770d96
fs,userns: Change inode_capable to capable_wrt_inode_uidgid

The kernel has no concept of capabilities with respect to inodes; inodes
exist independently of namespaces.  For example, inode_capable(inode,
CAP_LINUX_IMMUTABLE) would be nonsense.

This patch changes inode_capable to check for uid and gid mappings and
renames it to capable_wrt_inode_uidgid, which should make it more
obvious what it does.

Fixes CVE-2014-4014.

Cc: Theodore Ts'o <tytso@mit.edu>
Cc: Serge Hallyn <serge.hallyn@ubuntu.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: stable@vger.kernel.org
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/attr.c
fs/inode.c
fs/namei.c
fs/xfs/xfs_ioctl.c
include/linux/capability.h
kernel/capability.c