]> Pileus Git - ~andy/linux/commitdiff
userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq
authorEric W. Biederman <ebiederm@xmission.com>
Mon, 12 Mar 2012 22:48:24 +0000 (15:48 -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
mm/mempolicy.c
mm/migrate.c

index d24cc75caf65a03d5b61e8dee89ecf6c5b2c1770..b5dff4d1e1ded461decce3ce227b0baef569b9a4 100644 (file)
@@ -865,8 +865,6 @@ config UIDGID_CONVERTED
 
        # List of kernel pieces that need user namespace work
        # Features
-       depends on MIGRATION = n
-       depends on NUMA = n
        depends on SYSVIPC = n
        depends on IMA = n
        depends on EVM = n
index cfb6c8678754fdb3baf411e2331e87ea64766fb2..7b44fc8ec99c6e55d69db3251514d0344a931e1b 100644 (file)
@@ -1334,8 +1334,8 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
         * userid as the target process.
         */
        tcred = __task_cred(task);
-       if (cred->euid != tcred->suid && cred->euid != tcred->uid &&
-           cred->uid  != tcred->suid && cred->uid  != tcred->uid &&
+       if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
+           !uid_eq(cred->uid,  tcred->suid) && !uid_eq(cred->uid,  tcred->uid) &&
            !capable(CAP_SYS_NICE)) {
                rcu_read_unlock();
                err = -EPERM;
index 51c08a0c6f68ac6e78d09568bd270ad95aac7622..1cf5252c3b9948e580e4b1bc16290f8dfe893943 100644 (file)
@@ -1371,8 +1371,8 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
         * userid as the target process.
         */
        tcred = __task_cred(task);
-       if (cred->euid != tcred->suid && cred->euid != tcred->uid &&
-           cred->uid  != tcred->suid && cred->uid  != tcred->uid &&
+       if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
+           !uid_eq(cred->uid,  tcred->suid) && !uid_eq(cred->uid,  tcred->uid) &&
            !capable(CAP_SYS_NICE)) {
                rcu_read_unlock();
                err = -EPERM;