diff options
Diffstat (limited to 'kernel/ptrace.c')
| -rw-r--r-- | kernel/ptrace.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/ptrace.c b/kernel/ptrace.c index dd562e9aa2c..adf98622cb3 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -257,7 +257,8 @@ ok:  	if (task->mm)  		dumpable = get_dumpable(task->mm);  	rcu_read_lock(); -	if (!dumpable && !ptrace_has_cap(__task_cred(task)->user_ns, mode)) { +	if (dumpable != SUID_DUMP_USER && +	    !ptrace_has_cap(__task_cred(task)->user_ns, mode)) {  		rcu_read_unlock();  		return -EPERM;  	} @@ -1179,8 +1180,8 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,  	return ret;  } -asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, -				  compat_long_t addr, compat_long_t data) +COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid, +		       compat_long_t, addr, compat_long_t, data)  {  	struct task_struct *child;  	long ret;  | 
