From 537be18eae9e0f5564558f583cae217f29c46d6c Mon Sep 17 00:00:00 2001 From: Jochen Neumeister Date: Tue, 11 Jun 2019 14:13:43 +0000 Subject: [PATCH] meout: fix default_[stage]_rate_factor initializations. PR: 238488 Reported by: girgen Sponsored by: Netzkommune GmbH --- www/apache24/Makefile | 1 + ...dules__filters__mod_reqtimeout.c-bug-63325 | 62 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 www/apache24/files/patch-modules__filters__mod_reqtimeout.c-bug-63325 diff --git a/www/apache24/Makefile b/www/apache24/Makefile index 34d8d2ef753c..e6bd8e14a5be 100644 --- a/www/apache24/Makefile +++ b/www/apache24/Makefile @@ -2,6 +2,7 @@ PORTNAME= apache24 PORTVERSION= 2.4.39 +PORTREVISION= 1 CATEGORIES= www ipv6 MASTER_SITES= APACHE_HTTPD DISTNAME= httpd-${PORTVERSION} diff --git a/www/apache24/files/patch-modules__filters__mod_reqtimeout.c-bug-63325 b/www/apache24/files/patch-modules__filters__mod_reqtimeout.c-bug-63325 new file mode 100644 index 000000000000..149f5a0738dd --- /dev/null +++ b/www/apache24/files/patch-modules__filters__mod_reqtimeout.c-bug-63325 @@ -0,0 +1,62 @@ +--- modules/filters/mod_reqtimeout.c 2019/04/08 18:30:57 1857128 ++++ modules/filters/mod_reqtimeout.c 2019/04/08 18:46:12 1857129 +@@ -31,7 +31,7 @@ + #define UNSET -1 + #define MRT_DEFAULT_handshake_TIMEOUT 0 /* disabled */ + #define MRT_DEFAULT_handshake_MAX_TIMEOUT 0 +-#define MRT_DEFAULT_handshake_MIN_RATE APR_INT32_MAX ++#define MRT_DEFAULT_handshake_MIN_RATE 0 + #define MRT_DEFAULT_header_TIMEOUT 20 + #define MRT_DEFAULT_header_MAX_TIMEOUT 40 + #define MRT_DEFAULT_header_MIN_RATE 500 +@@ -220,7 +220,7 @@ + if (block == APR_NONBLOCK_READ || mode == AP_MODE_INIT + || mode == AP_MODE_EATCRLF) { + rv = ap_get_brigade(f->next, bb, mode, block, readbytes); +- if (ccfg->cur_stage.rate_factor > 0 && rv == APR_SUCCESS) { ++ if (ccfg->cur_stage.rate_factor && rv == APR_SUCCESS) { + extend_timeout(ccfg, bb); + } + return rv; +@@ -254,7 +254,7 @@ + } + + if (!APR_BRIGADE_EMPTY(bb)) { +- if (ccfg->cur_stage.rate_factor > 0) { ++ if (ccfg->cur_stage.rate_factor) { + extend_timeout(ccfg, bb); + } + +@@ -315,7 +315,7 @@ + * the real (relevant) bytes to be asked later, within the + * currently alloted time. + */ +- if (ccfg->cur_stage.rate_factor > 0 && rv == APR_SUCCESS ++ if (ccfg->cur_stage.rate_factor && rv == APR_SUCCESS + && mode != AP_MODE_SPECULATIVE) { + extend_timeout(ccfg, bb); + } +@@ -638,17 +638,17 @@ + ap_hook_post_read_request(reqtimeout_before_body, NULL, NULL, + APR_HOOK_MIDDLE); + +-#if MRT_DEFAULT_HANDSHAKE_MIN_RATE > 0 ++#if MRT_DEFAULT_handshake_MIN_RATE + default_handshake_rate_factor = apr_time_from_sec(1) / +- MRT_DEFAULT_HANDSHAKE_MIN_RATE; ++ MRT_DEFAULT_handshake_MIN_RATE; + #endif +-#if MRT_DEFAULT_HEADER_MIN_RATE > 0 ++#if MRT_DEFAULT_header_MIN_RATE + default_header_rate_factor = apr_time_from_sec(1) / +- MRT_DEFAULT_HEADER_MIN_RATE; ++ MRT_DEFAULT_header_MIN_RATE; + #endif +-#if MRT_DEFAULT_BODY_MIN_RATE > 0 ++#if MRT_DEFAULT_body_MIN_RATE + default_body_rate_factor = apr_time_from_sec(1) / +- MRT_DEFAULT_BODY_MIN_RATE; ++ MRT_DEFAULT_body_MIN_RATE; + #endif + } +