You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Ruediger Pluem <rp...@apache.org> on 2022/09/27 06:49:01 UTC

Re: svn commit: r1904269 - in /httpd/httpd/trunk: changes-entries/ docs/manual/mod/ modules/http2/ test/modules/http2/


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

Re: svn commit: r1904269 - in /httpd/httpd/trunk: changes-entries/ docs/manual/mod/ modules/http2/ test/modules/http2/

Posted by Stefan Eissing via dev <de...@httpd.apache.org>.

> Am 27.09.2022 um 08:49 schrieb Ruediger Pluem <rp...@apache.org>:
> 
> 
> 
> 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.

You are correct. Changed the type to apr_time_t and no more casting in r1904299.

Thanks for reviewing.

/Stefan
> 
>>     workers->dynamic = (workers->min_active < workers->max_slots);
>> 
>>     ap_log_error(APLOG_MARK, APLOG_INFO, 0, s,
> 
> Regards
> 
> RĂ¼diger