From: Eric W. Biederman Date: Thu, 13 Apr 2017 15:32:16 +0000 (-0500) Subject: posix-timers: Correct sanity check in posix_cpu_nsleep X-Git-Tag: v4.14-rc1~990^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=01a2197485a9917216ad67ced4bafed9f7942f5a;p=platform%2Fkernel%2Flinux-rpi.git 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: "Eric W. Biederman" --- diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c index 4513ad1..37f9bb8 100644 --- a/kernel/time/posix-cpu-timers.c +++ b/kernel/time/posix-cpu-timers.c @@ -1312,7 +1312,7 @@ static int posix_cpu_nsleep(const clockid_t which_clock, int flags, */ if (CPUCLOCK_PERTHREAD(which_clock) && (CPUCLOCK_PID(which_clock) == 0 || - CPUCLOCK_PID(which_clock) == current->pid)) + CPUCLOCK_PID(which_clock) == task_pid_vnr(current))) return -EINVAL; error = do_cpu_nanosleep(which_clock, flags, rqtp, &it);