diff options
Diffstat (limited to 'arch/ia64/kernel/perfmon.c')
| -rw-r--r-- | arch/ia64/kernel/perfmon.c | 30 | 
1 files changed, 15 insertions, 15 deletions
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index e3bd7b8acea..f388b4e18a3 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c @@ -2378,8 +2378,8 @@ static int  pfm_bad_permissions(struct task_struct *task)  {  	const struct cred *tcred; -	uid_t uid = current_uid(); -	gid_t gid = current_gid(); +	kuid_t uid = current_uid(); +	kgid_t gid = current_gid();  	int ret;  	rcu_read_lock(); @@ -2387,20 +2387,20 @@ pfm_bad_permissions(struct task_struct *task)  	/* inspired by ptrace_attach() */  	DPRINT(("cur: uid=%d gid=%d task: euid=%d suid=%d uid=%d egid=%d sgid=%d\n", -		uid, -		gid, -		tcred->euid, -		tcred->suid, -		tcred->uid, -		tcred->egid, -		tcred->sgid)); +		from_kuid(&init_user_ns, uid), +		from_kgid(&init_user_ns, gid), +		from_kuid(&init_user_ns, tcred->euid), +		from_kuid(&init_user_ns, tcred->suid), +		from_kuid(&init_user_ns, tcred->uid), +		from_kgid(&init_user_ns, tcred->egid), +		from_kgid(&init_user_ns, tcred->sgid))); -	ret = ((uid != tcred->euid) -	       || (uid != tcred->suid) -	       || (uid != tcred->uid) -	       || (gid != tcred->egid) -	       || (gid != tcred->sgid) -	       || (gid != tcred->gid)) && !capable(CAP_SYS_PTRACE); +	ret = ((!uid_eq(uid, tcred->euid)) +	       || (!uid_eq(uid, tcred->suid)) +	       || (!uid_eq(uid, tcred->uid)) +	       || (!gid_eq(gid, tcred->egid)) +	       || (!gid_eq(gid, tcred->sgid)) +	       || (!gid_eq(gid, tcred->gid))) && !capable(CAP_SYS_PTRACE);  	rcu_read_unlock();  	return ret;  |