]> Pileus Git - ~andy/linux/commitdiff
userns: Convert cgroup permission checks to use uid_eq
authorEric W. Biederman <ebiederm@xmission.com>
Mon, 12 Mar 2012 22:44:39 +0000 (15:44 -0700)
committerEric W. Biederman <ebiederm@xmission.com>
Tue, 15 May 2012 21:59:30 +0000 (14:59 -0700)
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
init/Kconfig
kernel/cgroup.c

index 7a5ccb2e9e0fbde78390aa59580d3f9d64cc9c85..d24cc75caf65a03d5b61e8dee89ecf6c5b2c1770 100644 (file)
@@ -865,7 +865,6 @@ config UIDGID_CONVERTED
 
        # List of kernel pieces that need user namespace work
        # Features
-       depends on CGROUPS = n
        depends on MIGRATION = n
        depends on NUMA = n
        depends on SYSVIPC = n
index ed64ccac67c9707d0b4310227eb84d820710fbec..c8329b0c25762bbd85422a4df53848c22677eb0a 100644 (file)
@@ -2160,9 +2160,9 @@ retry_find_task:
                 * only need to check permissions on one of them.
                 */
                tcred = __task_cred(tsk);
-               if (cred->euid &&
-                   cred->euid != tcred->uid &&
-                   cred->euid != tcred->suid) {
+               if (!uid_eq(cred->euid, GLOBAL_ROOT_UID) &&
+                   !uid_eq(cred->euid, tcred->uid) &&
+                   !uid_eq(cred->euid, tcred->suid)) {
                        rcu_read_unlock();
                        ret = -EACCES;
                        goto out_unlock_cgroup;