Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932365AbaFCIPw (ORCPT ); Tue, 3 Jun 2014 04:15:52 -0400 Received: from mail-ve0-f173.google.com ([209.85.128.173]:42747 "EHLO mail-ve0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753428AbaFCIPp (ORCPT ); Tue, 3 Jun 2014 04:15:45 -0400 MIME-Version: 1.0 In-Reply-To: <20140603080826.GK11096@twins.programming.kicks-ass.net> References: <20140602021319.9A5F9660C19@gitolite.kernel.org> <20140602202204.GA26649@redhat.com> <20140603080826.GK11096@twins.programming.kicks-ass.net> Date: Tue, 3 Jun 2014 10:15:44 +0200 Message-ID: Subject: Re: sched: Disallow sched_attr::sched_policy < 0 From: Richard Weinberger To: Peter Zijlstra Cc: Dave Jones , Linux Kernel Mailing List , Michael Kerrisk-manpages , Linus Torvalds , Ingo Molnar Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 3, 2014 at 10:08 AM, Peter Zijlstra 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/