|
@@ -429,20 +429,11 @@ static void free_pi_state(struct futex_pi_state *pi_state)
|
|
|
static struct task_struct * futex_find_get_task(pid_t pid)
|
|
|
{
|
|
|
struct task_struct *p;
|
|
|
- const struct cred *cred = current_cred(), *pcred;
|
|
|
|
|
|
rcu_read_lock();
|
|
|
p = find_task_by_vpid(pid);
|
|
|
- if (!p) {
|
|
|
- p = ERR_PTR(-ESRCH);
|
|
|
- } else {
|
|
|
- pcred = __task_cred(p);
|
|
|
- if (cred->euid != pcred->euid &&
|
|
|
- cred->euid != pcred->uid)
|
|
|
- p = ERR_PTR(-ESRCH);
|
|
|
- else
|
|
|
- get_task_struct(p);
|
|
|
- }
|
|
|
+ if (p)
|
|
|
+ get_task_struct(p);
|
|
|
|
|
|
rcu_read_unlock();
|
|
|
|
|
@@ -564,8 +555,8 @@ lookup_pi_state(u32 uval, struct futex_hash_bucket *hb,
|
|
|
if (!pid)
|
|
|
return -ESRCH;
|
|
|
p = futex_find_get_task(pid);
|
|
|
- if (IS_ERR(p))
|
|
|
- return PTR_ERR(p);
|
|
|
+ if (!p)
|
|
|
+ return -ESRCH;
|
|
|
|
|
|
/*
|
|
|
* We need to look at the task state flags to figure out,
|