]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - mm/migrate.c
CRED: Wrap task credential accesses in the core kernel
[net-next-2.6.git] / mm / migrate.c
index 6602941bfab0b03607f9bce6dd8e3f9ce1046bfe..6263c24c4afe795174b38d51c8c89832e645058a 100644 (file)
@@ -1048,6 +1048,7 @@ asmlinkage long sys_move_pages(pid_t pid, unsigned long nr_pages,
        struct task_struct *task;
        struct mm_struct *mm;
        int err;
+       uid_t uid, euid;
 
        /* Check flags */
        if (flags & ~(MPOL_MF_MOVE|MPOL_MF_MOVE_ALL))
@@ -1075,8 +1076,10 @@ asmlinkage long sys_move_pages(pid_t pid, unsigned long nr_pages,
         * capabilities, superuser privileges or the same
         * userid as the target process.
         */
-       if ((current->euid != task->suid) && (current->euid != task->uid) &&
-           (current->uid != task->suid) && (current->uid != task->uid) &&
+       uid = current_uid();
+       euid = current_euid();
+       if (euid != task->suid && euid != task->uid &&
+           uid  != task->suid && uid  != task->uid &&
            !capable(CAP_SYS_NICE)) {
                err = -EPERM;
                goto out;