提交 01a21974 编写于 作者: E Eric W. Biederman

posix-timers: Correct sanity check in posix_cpu_nsleep

CPUCLOCK_PID(which_clock) is a pid value from userspace so compare it
against task_pid_vnr, not current->pid.  As task_pid_vnr is in the tasks
pid value in the tasks pid namespace, and current->pid is in the
initial pid namespace.
Signed-off-by: N"Eric W. Biederman" <ebiederm@xmission.com>
上级 b54807fa
...@@ -1312,7 +1312,7 @@ static int posix_cpu_nsleep(const clockid_t which_clock, int flags, ...@@ -1312,7 +1312,7 @@ static int posix_cpu_nsleep(const clockid_t which_clock, int flags,
*/ */
if (CPUCLOCK_PERTHREAD(which_clock) && if (CPUCLOCK_PERTHREAD(which_clock) &&
(CPUCLOCK_PID(which_clock) == 0 || (CPUCLOCK_PID(which_clock) == 0 ||
CPUCLOCK_PID(which_clock) == current->pid)) CPUCLOCK_PID(which_clock) == task_pid_vnr(current)))
return -EINVAL; return -EINVAL;
error = do_cpu_nanosleep(which_clock, flags, rqtp, &it); error = do_cpu_nanosleep(which_clock, flags, rqtp, &it);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册