Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01a21974 authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

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: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent b54807fa
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -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);