diff options
author | pho <pho@FreeBSD.org> | 2011-11-18 19:14:42 +0000 |
---|---|---|
committer | pho <pho@FreeBSD.org> | 2011-11-18 19:14:42 +0000 |
commit | 97e40483cb625dbd056c37c5f6d123f0fe2f37dc (patch) | |
tree | 08c3ed3c8f9a1b01121a2a329a6e429f93764c9f /sys/kern/kern_thr.c | |
parent | f34e0d5d069d10a38d86579ba7a0f91ba83a3f99 (diff) | |
download | FreeBSD-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.c | 3 |
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; |