summaryrefslogtreecommitdiff
path: root/kernel/ptrace.c
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2019-05-24 15:13:14 -0400
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-05-24 15:13:14 -0400
commitf87a2dd0f63341b50063fa688a573e5e0899bc85 (patch)
treed39894abecb252937604f9a23f55c1e0cb973669 /kernel/ptrace.c
parentdc5db1cbfebf8571ecf5837e42013639d11f3e74 (diff)
parentffe8cffc8be1ae47c08cbc3571bed6b5b0fa53ad (diff)
downloadlinux-rt-f87a2dd0f63341b50063fa688a573e5e0899bc85.tar.gz
Merge tag 'v4.9.176' into v4.9-rt
This is the 4.9.176 stable release Conflicts: arch/x86/include/asm/thread_info.h kernel/cpu.c Also modified kernel/irq/manage.c
Diffstat (limited to 'kernel/ptrace.c')
-rw-r--r--kernel/ptrace.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 583ce3aad891..042efdab0d60 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -265,6 +265,9 @@ static int ptrace_check_attach(struct task_struct *child, bool ignore_state)
static int ptrace_has_cap(struct user_namespace *ns, unsigned int mode)
{
+ if (mode & PTRACE_MODE_SCHED)
+ return false;
+
if (mode & PTRACE_MODE_NOAUDIT)
return has_ns_capability_noaudit(current, ns, CAP_SYS_PTRACE);
else
@@ -332,9 +335,16 @@ ok:
!ptrace_has_cap(mm->user_ns, mode)))
return -EPERM;
+ if (mode & PTRACE_MODE_SCHED)
+ return 0;
return security_ptrace_access_check(task, mode);
}
+bool ptrace_may_access_sched(struct task_struct *task, unsigned int mode)
+{
+ return __ptrace_may_access(task, mode | PTRACE_MODE_SCHED);
+}
+
bool ptrace_may_access(struct task_struct *task, unsigned int mode)
{
int err;