summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_thr.c
diff options
context:
space:
mode:
authorpho <pho@FreeBSD.org>2011-11-18 19:14:42 +0000
committerpho <pho@FreeBSD.org>2011-11-18 19:14:42 +0000
commit97e40483cb625dbd056c37c5f6d123f0fe2f37dc (patch)
tree08c3ed3c8f9a1b01121a2a329a6e429f93764c9f /sys/kern/kern_thr.c
parentf34e0d5d069d10a38d86579ba7a0f91ba83a3f99 (diff)
downloadFreeBSD-src-97e40483cb625dbd056c37c5f6d123f0fe2f37dc.zip
FreeBSD-src-97e40483cb625dbd056c37c5f6d123f0fe2f37dc.tar.gz
Added check for negative seconds value. Found by syscall() fuzzing.
MFC after: 1 week
Diffstat (limited to 'sys/kern/kern_thr.c')
-rw-r--r--sys/kern/kern_thr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_thr.c b/sys/kern/kern_thr.c
index 7ce0925..881fd55 100644
--- a/sys/kern/kern_thr.c
+++ b/sys/kern/kern_thr.c
@@ -474,7 +474,8 @@ kern_thr_suspend(struct thread *td, struct timespec *tsp)
}
if (tsp != NULL) {
- if (tsp->tv_nsec < 0 || tsp->tv_nsec > 1000000000)
+ if (tsp->tv_sec < 0 || tsp->tv_nsec < 0 ||
+ tsp->tv_nsec > 1000000000)
return (EINVAL);
if (tsp->tv_sec == 0 && tsp->tv_nsec == 0)
error = EWOULDBLOCK;
OpenPOWER on IntegriCloud