Messages in this thread | | | Date | Tue, 3 Jun 2014 10:15:44 +0200 | Subject | Re: sched: Disallow sched_attr::sched_policy < 0 | From | Richard Weinberger <> |
| |
On Tue, Jun 3, 2014 at 10:08 AM, Peter Zijlstra <peterz@infradead.org> wrote: > On Mon, Jun 02, 2014 at 04:22:04PM -0400, Dave Jones wrote: >> On Mon, Jun 02, 2014 at 02:13:19AM +0000, Linux Kernel wrote: >> >> > sched: Disallow sched_attr::sched_policy < 0 >> > >> > The scheduler uses policy=-1 to preserve the current policy state to >> > implement sys_sched_setparam(), this got exposed to userspace by >> > accident through sys_sched_setattr(), cure this. >> > >> > --- >> > kernel/sched/core.c | 3 +++ >> > 1 files changed, 3 insertions(+), 0 deletions(-) >> > >> > diff --git a/kernel/sched/core.c b/kernel/sched/core.c >> > index f2205f0..cdefcf7 100644 >> > --- a/kernel/sched/core.c >> > +++ b/kernel/sched/core.c >> > @@ -3662,6 +3662,9 @@ SYSCALL_DEFINE3(sched_setattr, pid_t, pid, struct sched_attr __user *, uattr, >> > if (retval) >> > return retval; >> > >> > + if (attr.sched_policy < 0) >> > + return -EINVAL; >> > + >> > rcu_read_lock(); >> > retval = -ESRCH; >> > p = find_process_by_pid(pid); >> >> Todays coverity run picked up.. >> >> 3687 >> >>> CID 1219934: Unsigned compared against 0 (NO_EFFECT) >> >>> This less-than-zero comparison of an unsigned value is never true. "attr.sched_policy < 0U". >> 3688 if (attr.sched_policy < 0) >> 3689 return -EINVAL; >> > > Once upon a time GCC also did warns like that, but my compiler is silent > :-( > > Yes, that needs fixing..
I sent already a patch for that...
-- Thanks, //richard
| |