}
/* Returns 0 on success, -errno on denial. */
-int ___ptrace_may_access(struct task_struct *cur, struct task_struct *task,
- unsigned int mode)
+static int __ptrace_may_access(struct task_struct *task, unsigned int mode)
{
- const struct cred *cred = __task_cred(cur), *tcred;
+ const struct cred *cred = current_cred(), *tcred;
struct mm_struct *mm;
kuid_t caller_uid;
kgid_t caller_gid;
*/
/* Don't let security modules deny introspection */
- if (same_thread_group(task, cur))
+ if (same_thread_group(task, current))
return 0;
rcu_read_lock();
if (mode & PTRACE_MODE_FSCREDS) {
!ptrace_has_cap(mm->user_ns, mode)))
return -EPERM;
- if (!(mode & PTRACE_MODE_NOACCESS_CHK))
- return security_ptrace_access_check(task, mode);
-
- return 0;
-}
-EXPORT_SYMBOL_GPL(___ptrace_may_access);
-
-static int __ptrace_may_access(struct task_struct *task, unsigned int mode)
-{
- return ___ptrace_may_access(current, task, mode);
+ return security_ptrace_access_check(task, mode);
}
bool ptrace_may_access(struct task_struct *task, unsigned int mode)