On 9/26/22 2:29 PM, icing@apache.org wrote:
> Author: icing
> Date: Mon Sep 26 12:29:47 2022
> New Revision: 1904269
>
> URL: http://svn.apache.org/viewvc?rev=1904269&view=rev
> Log:
> *) mod_http2: new directive "H2HeaderStrictness" to control the compliance
> level of header checks as defined in the HTTP/2 RFCs. Default is 7540.
> 9113 activates the checks for forbidden leading/trailing whitespace in
> field values (available from nghttp2 v1.50.0 on).
>
> - source sync with github version
> - fix for keepalive idle wait in mpm_worker setup
> - ensuring EOS when secondary connection has been handled
> - fixed race in late input EOS arrival when stream was
> already scheduled for execution.
>
>
> Added:
> httpd/httpd/trunk/changes-entries/h2_header_strictness.txt
> Modified:
> httpd/httpd/trunk/docs/manual/mod/mod_http2.xml
> httpd/httpd/trunk/modules/http2/config2.m4
> httpd/httpd/trunk/modules/http2/h2.h
> httpd/httpd/trunk/modules/http2/h2_bucket_beam.c
> httpd/httpd/trunk/modules/http2/h2_bucket_beam.h
> httpd/httpd/trunk/modules/http2/h2_c1.c
> httpd/httpd/trunk/modules/http2/h2_c1_io.c
> httpd/httpd/trunk/modules/http2/h2_c2.c
> httpd/httpd/trunk/modules/http2/h2_config.c
> httpd/httpd/trunk/modules/http2/h2_config.h
> httpd/httpd/trunk/modules/http2/h2_mplx.c
> httpd/httpd/trunk/modules/http2/h2_mplx.h
> httpd/httpd/trunk/modules/http2/h2_request.c
> httpd/httpd/trunk/modules/http2/h2_session.c
> httpd/httpd/trunk/modules/http2/h2_stream.c
> httpd/httpd/trunk/modules/http2/h2_util.c
> httpd/httpd/trunk/modules/http2/h2_version.h
> httpd/httpd/trunk/modules/http2/h2_workers.c
> httpd/httpd/trunk/modules/http2/h2_workers.h
> httpd/httpd/trunk/test/modules/http2/test_105_timeout.py
>
> Modified: httpd/httpd/trunk/modules/http2/h2_workers.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_workers.c?rev=1904269&r1=1904268&r2=1904269&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/http2/h2_workers.c (original)
> +++ httpd/httpd/trunk/modules/http2/h2_workers.c Mon Sep 26 12:29:47 2022
> @@ -451,7 +452,7 @@ h2_workers *h2_workers_create(server_rec
> workers->pool = pool;
> workers->min_active = min_active;
> workers->max_slots = max_slots;
> - workers->idle_limit = (idle_limit > 0)? idle_limit : apr_time_from_sec(10);
> + workers->idle_limit = (int)((idle_limit > 0)? idle_limit : apr_time_from_sec(10));
Is it possible to change idle_limit in the workers struct to an apr_time_t? Otherwise the cast could truncate here in an
unexpected way as users are not limited in what they can configure for H2MaxWorkerIdleSeconds.
I am also not sure if a cast of a large value could result in a negative value.
> workers->dynamic = (workers->min_active < workers->max_slots);
>
> ap_log_error(APLOG_MARK, APLOG_INFO, 0, s,
Regards
Rüdiger
> Author: icing
> Date: Mon Sep 26 12:29:47 2022
> New Revision: 1904269
>
> URL: http://svn.apache.org/viewvc?rev=1904269&view=rev
> Log:
> *) mod_http2: new directive "H2HeaderStrictness" to control the compliance
> level of header checks as defined in the HTTP/2 RFCs. Default is 7540.
> 9113 activates the checks for forbidden leading/trailing whitespace in
> field values (available from nghttp2 v1.50.0 on).
>
> - source sync with github version
> - fix for keepalive idle wait in mpm_worker setup
> - ensuring EOS when secondary connection has been handled
> - fixed race in late input EOS arrival when stream was
> already scheduled for execution.
>
>
> Added:
> httpd/httpd/trunk/changes-entries/h2_header_strictness.txt
> Modified:
> httpd/httpd/trunk/docs/manual/mod/mod_http2.xml
> httpd/httpd/trunk/modules/http2/config2.m4
> httpd/httpd/trunk/modules/http2/h2.h
> httpd/httpd/trunk/modules/http2/h2_bucket_beam.c
> httpd/httpd/trunk/modules/http2/h2_bucket_beam.h
> httpd/httpd/trunk/modules/http2/h2_c1.c
> httpd/httpd/trunk/modules/http2/h2_c1_io.c
> httpd/httpd/trunk/modules/http2/h2_c2.c
> httpd/httpd/trunk/modules/http2/h2_config.c
> httpd/httpd/trunk/modules/http2/h2_config.h
> httpd/httpd/trunk/modules/http2/h2_mplx.c
> httpd/httpd/trunk/modules/http2/h2_mplx.h
> httpd/httpd/trunk/modules/http2/h2_request.c
> httpd/httpd/trunk/modules/http2/h2_session.c
> httpd/httpd/trunk/modules/http2/h2_stream.c
> httpd/httpd/trunk/modules/http2/h2_util.c
> httpd/httpd/trunk/modules/http2/h2_version.h
> httpd/httpd/trunk/modules/http2/h2_workers.c
> httpd/httpd/trunk/modules/http2/h2_workers.h
> httpd/httpd/trunk/test/modules/http2/test_105_timeout.py
>
> Modified: httpd/httpd/trunk/modules/http2/h2_workers.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_workers.c?rev=1904269&r1=1904268&r2=1904269&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/http2/h2_workers.c (original)
> +++ httpd/httpd/trunk/modules/http2/h2_workers.c Mon Sep 26 12:29:47 2022
> @@ -451,7 +452,7 @@ h2_workers *h2_workers_create(server_rec
> workers->pool = pool;
> workers->min_active = min_active;
> workers->max_slots = max_slots;
> - workers->idle_limit = (idle_limit > 0)? idle_limit : apr_time_from_sec(10);
> + workers->idle_limit = (int)((idle_limit > 0)? idle_limit : apr_time_from_sec(10));
Is it possible to change idle_limit in the workers struct to an apr_time_t? Otherwise the cast could truncate here in an
unexpected way as users are not limited in what they can configure for H2MaxWorkerIdleSeconds.
I am also not sure if a cast of a large value could result in a negative value.
> workers->dynamic = (workers->min_active < workers->max_slots);
>
> ap_log_error(APLOG_MARK, APLOG_INFO, 0, s,
Regards
Rüdiger