userns: Don't allow CLONE_NEWUSER | CLONE_FS
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 13 Mar 2013 18:51:49 +0000 (11:51 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 Mar 2013 22:00:20 +0000 (15:00 -0700)
commite66eded8309ebf679d3d3c1f5820d1f2ca332c71
tree768e1d799f6d6a4a7f85f48d9e9fc431dc8d017c
parent6c23cbbd5056b155401b0a2b5567d530e6c750c4
userns: Don't allow CLONE_NEWUSER | CLONE_FS

Don't allowing sharing the root directory with processes in a
different user namespace.  There doesn't seem to be any point, and to
allow it would require the overhead of putting a user namespace
reference in fs_struct (for permission checks) and incrementing that
reference count on practically every call to fork.

So just perform the inexpensive test of forbidding sharing fs_struct
acrosss processes in different user namespaces.  We already disallow
other forms of threading when unsharing a user namespace so this
should be no real burden in practice.

This updates setns, clone, and unshare to disallow multiple user
namespaces sharing an fs_struct.

Cc: stable@vger.kernel.org
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/fork.c
kernel/user_namespace.c