aboutsummaryrefslogtreecommitdiffstats
path: root/mm/migrate.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2017-08-25 05:04:51 -0400
committerIngo Molnar <mingo@kernel.org>2017-08-25 05:04:51 -0400
commit10c9850cb2ced2ce528e5b692c639974213a64ec (patch)
treef8063beac0ba1dab069d25661845c5b7ef9a67c7 /mm/migrate.c
parent0c2364791343e4b04cd1f097ff2abc2799062448 (diff)
parent90a6cd503982bfd33ce8c70eb49bd2dd33bc6325 (diff)
Merge branch 'linus' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'mm/migrate.c')
-rw-r--r--mm/migrate.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/mm/migrate.c b/mm/migrate.c
index d68a41da6abb..e84eeb4e4356 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -41,6 +41,7 @@
41#include <linux/page_idle.h> 41#include <linux/page_idle.h>
42#include <linux/page_owner.h> 42#include <linux/page_owner.h>
43#include <linux/sched/mm.h> 43#include <linux/sched/mm.h>
44#include <linux/ptrace.h>
44 45
45#include <asm/tlbflush.h> 46#include <asm/tlbflush.h>
46 47
@@ -1652,7 +1653,6 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
1652 const int __user *, nodes, 1653 const int __user *, nodes,
1653 int __user *, status, int, flags) 1654 int __user *, status, int, flags)
1654{ 1655{
1655 const struct cred *cred = current_cred(), *tcred;
1656 struct task_struct *task; 1656 struct task_struct *task;
1657 struct mm_struct *mm; 1657 struct mm_struct *mm;
1658 int err; 1658 int err;
@@ -1676,14 +1676,9 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
1676 1676
1677 /* 1677 /*
1678 * Check if this process has the right to modify the specified 1678 * Check if this process has the right to modify the specified
1679 * process. The right exists if the process has administrative 1679 * process. Use the regular "ptrace_may_access()" checks.
1680 * capabilities, superuser privileges or the same
1681 * userid as the target process.
1682 */ 1680 */
1683 tcred = __task_cred(task); 1681 if (!ptrace_may_access(task, PTRACE_MODE_READ_REALCREDS)) {
1684 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
1685 !uid_eq(cred->uid, tcred->suid) && !uid_eq(cred->uid, tcred->uid) &&
1686 !capable(CAP_SYS_NICE)) {
1687 rcu_read_unlock(); 1682 rcu_read_unlock();
1688 err = -EPERM; 1683 err = -EPERM;
1689 goto out; 1684 goto out;