diff options
author | jhb <jhb@FreeBSD.org> | 2013-08-29 15:59:05 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2013-08-29 15:59:05 +0000 |
commit | 5875a10cf6729e642e46a8a454c9afbc33f05de8 (patch) | |
tree | 637bbae1ecd1af77b2aa5db9a3c8fa46677f2a8a | |
parent | f31f23f6612c6105f7ac2b9c6f094d361565dfab (diff) | |
download | FreeBSD-src-5875a10cf6729e642e46a8a454c9afbc33f05de8.zip FreeBSD-src-5875a10cf6729e642e46a8a454c9afbc33f05de8.tar.gz |
Don't return an error for socket timeouts that are too large. Just
cap them to INT_MAX ticks instead.
PR: kern/181416 (r254699 really)
Requested by: bde
MFC after: 2 weeks
-rw-r--r-- | sys/kern/uipc_socket.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 4d0eac4..75fd04b 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -2698,17 +2698,12 @@ sosetopt(struct socket *so, struct sockopt *sopt) sizeof tv); if (error) goto bad; - - if (tv.tv_sec < 0 || tv.tv_sec > INT_MAX / hz || - tv.tv_usec < 0 || tv.tv_usec >= 1000000) { + if (tv.tv_sec < 0 || tv.tv_usec < 0 || + tv.tv_usec >= 1000000) { error = EDOM; goto bad; } val = tvtohz(&tv); - if (val == INT_MAX) { - error = EDOM; - goto bad; - } switch (sopt->sopt_name) { case SO_SNDTIMEO: |