From 2dca4ca723d686a087b6f2ce82ad6eccf60777e8 Mon Sep 17 00:00:00 2001 From: David Xu Date: Tue, 11 Jul 2006 08:19:57 +0000 Subject: [PATCH] Don't forget to check invalid policy! --- sys/kern/kern_thr.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/sys/kern/kern_thr.c b/sys/kern/kern_thr.c index 8110aa234bd8..3f76c46d266f 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); } }