|
@@ -51,6 +51,7 @@ asmlinkage long mipsmt_sys_sched_setaffinity(pid_t pid, unsigned int len,
|
|
|
int retval;
|
|
|
struct task_struct *p;
|
|
|
struct thread_info *ti;
|
|
|
+ uid_t euid;
|
|
|
|
|
|
if (len < sizeof(new_mask))
|
|
|
return -EINVAL;
|
|
@@ -76,9 +77,9 @@ asmlinkage long mipsmt_sys_sched_setaffinity(pid_t pid, unsigned int len,
|
|
|
*/
|
|
|
get_task_struct(p);
|
|
|
|
|
|
+ euid = current_euid();
|
|
|
retval = -EPERM;
|
|
|
- if ((current->euid != p->euid) && (current->euid != p->uid) &&
|
|
|
- !capable(CAP_SYS_NICE)) {
|
|
|
+ if (euid != p->euid && euid != p->uid && !capable(CAP_SYS_NICE)) {
|
|
|
read_unlock(&tasklist_lock);
|
|
|
goto out_unlock;
|
|
|
}
|