From 21b5baefd6277e63ad554f996fd121eb0e1b6ef0 Mon Sep 17 00:00:00 2001 From: davidxu Date: Tue, 11 Jul 2006 08:19:57 +0000 Subject: Don't forget to check invalid policy! --- sys/kern/kern_thr.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'sys/kern/kern_thr.c') diff --git a/sys/kern/kern_thr.c b/sys/kern/kern_thr.c index 8110aa2..3f76c46 100644 --- a/sys/kern/kern_thr.c +++ b/sys/kern/kern_thr.c @@ -128,18 +128,20 @@ create_thread(struct thread *td, mcontext_t *ctx, return (EPROCLIM); if (sched != NULL) { - /* Only root can set scheduler policy */ - if (sched->policy != SCHED_OTHER) { + switch(sched->policy) { + case SCHED_FIFO: + case SCHED_RR: + /* Only root can set scheduler policy */ if (suser(td) != 0) return (EPERM); - - if (sched->policy != SCHED_FIFO && - sched->policy != SCHED_RR) - return (EINVAL); - if (sched->param.sched_priority < RTP_PRIO_MIN || sched->param.sched_priority > RTP_PRIO_MAX) return (EINVAL); + break; + case SCHED_OTHER: + break; + default: + return (EINVAL); } } -- cgit v1.1