diff options
author | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2015-08-08 12:29:58 +0000 |
---|---|---|
committer | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2015-08-08 12:29:58 +0000 |
commit | 066f70ea6830a65b092b41365a050d681fae44ed (patch) | |
tree | f507552deefc82771bb12aa627606483496e7c76 /src | |
parent | 9d58eaee1f474a1bccf7f0b9ae2328b0227950ac (diff) | |
download | libmicrohttpd-066f70ea6830a65b092b41365a050d681fae44ed.tar.gz libmicrohttpd-066f70ea6830a65b092b41365a050d681fae44ed.zip |
daemon.c: MHD_select(): check for timeout value overflow
Diffstat (limited to 'src')
-rw-r--r-- | src/microhttpd/daemon.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c index 9a94bd92..d45c7487 100644 --- a/src/microhttpd/daemon.c +++ b/src/microhttpd/daemon.c | |||
@@ -2364,7 +2364,10 @@ MHD_select (struct MHD_Daemon *daemon, | |||
2364 | { | 2364 | { |
2365 | /* ltimeout is in ms */ | 2365 | /* ltimeout is in ms */ |
2366 | timeout.tv_usec = (ltimeout % 1000) * 1000; | 2366 | timeout.tv_usec = (ltimeout % 1000) * 1000; |
2367 | timeout.tv_sec = ltimeout / 1000; | 2367 | if (ltimeout / 1000 > TIMEVAL_TV_SEC_MAX) |
2368 | timeout.tv_sec = TIMEVAL_TV_SEC_MAX; | ||
2369 | else | ||
2370 | timeout.tv_sec = (_MHD_TIMEVAL_TV_SEC_TYPE)(ltimeout / 1000); | ||
2368 | tv = &timeout; | 2371 | tv = &timeout; |
2369 | } | 2372 | } |
2370 | num_ready = MHD_SYS_select_ (max + 1, &rs, &ws, &es, tv); | 2373 | num_ready = MHD_SYS_select_ (max + 1, &rs, &ws, &es, tv); |