prctl: adds the capable(CAP_SYS_NICE) check to PR_SET_TIMERSLACK_PID.
[firefly-linux-kernel-4.4.55.git] / kernel / sys.c
index fd06809929129465f96e38aa47a5d84a0bcad490..d448bad888238512458763828ef17dc4940b6055 100644 (file)
@@ -2201,6 +2201,9 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
                                return -EINVAL;
                        break;
                case PR_SET_TIMERSLACK_PID:
+                       if (current->pid != (pid_t)arg3 &&
+                                       !capable(CAP_SYS_NICE))
+                               return -EPERM;
                        rcu_read_lock();
                        tsk = find_task_by_pid_ns((pid_t)arg3, &init_pid_ns);
                        if (tsk == NULL) {