Index: kern_umtx.c =================================================================== --- kern_umtx.c (revision 239132) +++ kern_umtx.c (working copy) @@ -3305,9 +3305,7 @@ umtx_copyin_timeout32(void *addr, struct timespec error = copyin(addr, &ts32, sizeof(struct timespec32)); if (error == 0) { - if (ts32.tv_sec < 0 || - ts32.tv_nsec >= 1000000000 || - ts32.tv_nsec < 0) + if (ts32.tv_nsec >= 1000000000) error = EINVAL; else { tsp->tv_sec = ts32.tv_sec; @@ -3331,8 +3329,7 @@ umtx_copyin_umtx_time32(const void *addr, size_t s error = copyin(addr, &t32, sizeof(struct umtx_time32)); if (error != 0) return (error); - if (t32.timeout.tv_sec < 0 || - t32.timeout.tv_nsec >= 1000000000 || t32.timeout.tv_nsec < 0) + if (t32.timeout.tv_nsec >= 1000000000) return (EINVAL); tp->_timeout.tv_sec = t32.timeout.tv_sec; tp->_timeout.tv_nsec = t32.timeout.tv_nsec;