aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2021-12-26 11:56:43 +0300
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2021-12-26 12:41:48 +0300
commit430d7251faa8f3eb28a6f58856235f2a6305da1b (patch)
tree765ec7f196c007a96afe693722db532cc4933b9b
parent005d1f25b2a8b2db5bc81f7134f3ca9e75fafa06 (diff)
downloadlibmicrohttpd-430d7251faa8f3eb28a6f58856235f2a6305da1b.tar.gz
libmicrohttpd-430d7251faa8f3eb28a6f58856235f2a6305da1b.zip
Reduced maximum possible connection timeout
The maximum timeout value is still too large to be used (more than hundred thousand years).
-rw-r--r--src/microhttpd/connection.c10
-rw-r--r--src/microhttpd/daemon.c10
2 files changed, 10 insertions, 10 deletions
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
index 79014352..02fc0e71 100644
--- a/src/microhttpd/connection.c
+++ b/src/microhttpd/connection.c
@@ -4999,8 +4999,8 @@ MHD_set_connection_option (struct MHD_Connection *connection,
4999 va_start (ap, option); 4999 va_start (ap, option);
5000 ui_val = va_arg (ap, unsigned int); 5000 ui_val = va_arg (ap, unsigned int);
5001 va_end (ap); 5001 va_end (ap);
5002#if (SIZEOF_UINT64_T - 1) <= SIZEOF_UNSIGNED_INT 5002#if (SIZEOF_UINT64_T - 2) <= SIZEOF_UNSIGNED_INT
5003 if ((UINT64_MAX / 2000 - 1) < ui_val) 5003 if ((UINT64_MAX / 4000 - 1) < ui_val)
5004 { 5004 {
5005#ifdef HAVE_MESSAGES 5005#ifdef HAVE_MESSAGES
5006 MHD_DLOG (connection->daemon, 5006 MHD_DLOG (connection->daemon,
@@ -5008,12 +5008,12 @@ MHD_set_connection_option (struct MHD_Connection *connection,
5008 "large. Maximum allowed value (%" PRIu64 ") will be used " \ 5008 "large. Maximum allowed value (%" PRIu64 ") will be used " \
5009 "instead.\n"), 5009 "instead.\n"),
5010 ui_val, 5010 ui_val,
5011 (UINT64_MAX / 2000 - 1)); 5011 (UINT64_MAX / 4000 - 1));
5012#endif 5012#endif
5013 ui_val = UINT64_MAX / 2000 - 1; 5013 ui_val = UINT64_MAX / 4000 - 1;
5014 } 5014 }
5015 else 5015 else
5016#endif /* (SIZEOF_UINT64_T - 1) <= SIZEOF_UNSIGNED_INT */ 5016#endif /* (SIZEOF_UINT64_T - 2) <= SIZEOF_UNSIGNED_INT */
5017 connection->connection_timeout_ms = ui_val * 1000; 5017 connection->connection_timeout_ms = ui_val * 1000;
5018 if ( (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) && 5018 if ( (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) &&
5019 (! connection->suspended) ) 5019 (! connection->suspended) )
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index 9f220263..d4064dd7 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -5658,8 +5658,8 @@ parse_options_va (struct MHD_Daemon *daemon,
5658 case MHD_OPTION_CONNECTION_TIMEOUT: 5658 case MHD_OPTION_CONNECTION_TIMEOUT:
5659 uv = va_arg (ap, 5659 uv = va_arg (ap,
5660 unsigned int); 5660 unsigned int);
5661#if (SIZEOF_UINT64_T - 1) <= SIZEOF_UNSIGNED_INT 5661#if (SIZEOF_UINT64_T - 2) <= SIZEOF_UNSIGNED_INT
5662 if ((UINT64_MAX / 2000 - 1) < uv) 5662 if ((UINT64_MAX / 4000 - 1) < uv)
5663 { 5663 {
5664#ifdef HAVE_MESSAGES 5664#ifdef HAVE_MESSAGES
5665 MHD_DLOG (daemon, 5665 MHD_DLOG (daemon,
@@ -5667,11 +5667,11 @@ parse_options_va (struct MHD_Daemon *daemon,
5667 "Maximum allowed value (%" PRIu64 ") will be used " \ 5667 "Maximum allowed value (%" PRIu64 ") will be used " \
5668 "instead.\n"), 5668 "instead.\n"),
5669 uv, 5669 uv,
5670 (UINT64_MAX / 2000 - 1)); 5670 (UINT64_MAX / 4000 - 1));
5671#endif 5671#endif
5672 uv = UINT64_MAX / 2000 - 1; 5672 uv = UINT64_MAX / 4000 - 1;
5673 } 5673 }
5674#endif /* (SIZEOF_UINT64_T - 1) <= SIZEOF_UNSIGNED_INT */ 5674#endif /* (SIZEOF_UINT64_T - 2) <= SIZEOF_UNSIGNED_INT */
5675 daemon->connection_timeout_ms = uv * 1000; 5675 daemon->connection_timeout_ms = uv * 1000;
5676 break; 5676 break;
5677 case MHD_OPTION_NOTIFY_COMPLETED: 5677 case MHD_OPTION_NOTIFY_COMPLETED: