aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2015-08-08 12:29:58 +0000
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2015-08-08 12:29:58 +0000
commit066f70ea6830a65b092b41365a050d681fae44ed (patch)
treef507552deefc82771bb12aa627606483496e7c76 /src
parent9d58eaee1f474a1bccf7f0b9ae2328b0227950ac (diff)
downloadlibmicrohttpd-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.c5
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);