aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorPeter Holm <pho@FreeBSD.org>2011-11-18 19:14:42 +0000
committerPeter Holm <pho@FreeBSD.org>2011-11-18 19:14:42 +0000
commit7bbcd22d38c689b92e7fe9d2487e4e18258147a1 (patch)
tree08c3ed3c8f9a1b01121a2a329a6e429f93764c9f /sys
parent1a1f41b8fe8684072cbfd63a9404b2e0553c135e (diff)
downloadsrc-7bbcd22d38c689b92e7fe9d2487e4e18258147a1.tar.gz
src-7bbcd22d38c689b92e7fe9d2487e4e18258147a1.zip
Added check for negative seconds value. Found by syscall() fuzzing.
MFC after: 1 week
Notes
Notes: svn path=/head/; revision=227674
Diffstat (limited to 'sys')
-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 7ce0925e6d27..881fd55053d6 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;