You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by co...@apache.org on 2018/03/20 21:17:18 UTC
svn commit: r1827359 - in /httpd/httpd/trunk: CHANGES server/protocol.c
Author: covener
Date: Tue Mar 20 21:17:18 2018
New Revision: 1827359
URL: http://svn.apache.org/viewvc?rev=1827359&view=rev
Log:
PR62200: EBCDIC: ap_rgetline APR_ENOSPC
On EBCDIC systems, translation does not occur in ap_rgetline() if the line is
larger than the buffer size.
Submitted By: Hank Ibell
Committed By: covener
Modified:
httpd/httpd/trunk/CHANGES
httpd/httpd/trunk/server/protocol.c
Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1827359&r1=1827358&r2=1827359&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Tue Mar 20 21:17:18 2018
@@ -1,6 +1,10 @@
-*- coding: utf-8 -*-
Changes with Apache 2.5.1
+ *) core: On ECBDIC platforms, some errors related to oversized headers
+ may be misreported or be logged as ASCII escapes. PR62200
+ [Hank Ibell <hwibell gmail.com>]
+
*) mod_remoteip: make proxy-protocol work on slave connections, e.g. in HTTP/2
requests. See also https://github.com/roadrunner2/mod-proxy-protocol/issues/6
[Stefan Eissing]
Modified: httpd/httpd/trunk/server/protocol.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/protocol.c?rev=1827359&r1=1827358&r2=1827359&view=diff
==============================================================================
--- httpd/httpd/trunk/server/protocol.c (original)
+++ httpd/httpd/trunk/server/protocol.c Tue Mar 20 21:17:18 2018
@@ -476,7 +476,7 @@ AP_DECLARE(apr_status_t) ap_rgetline(cha
apr_status_t rv;
rv = ap_rgetline_core(s, n, read, r, fold, bb);
- if (rv == APR_SUCCESS) {
+ if (rv == APR_SUCCESS || APR_STATUS_IS_ENOSPC(rv)) {
ap_xlate_proto_from_ascii(*s, *read);
}
return rv;
Re: svn commit: r1827359 - in /httpd/httpd/trunk: CHANGES server/protocol.c
Posted by Yann Ylavic <yl...@gmail.com>.
On Tue, Mar 20, 2018 at 10:33 PM, Eric Covener <co...@gmail.com> wrote:
> On Tue, Mar 20, 2018 at 5:22 PM, Yann Ylavic <yl...@gmail.com> wrote:
>> On Tue, Mar 20, 2018 at 10:17 PM, <co...@apache.org> wrote:
>>> Author: covener
>>> Date: Tue Mar 20 21:17:18 2018
>>> New Revision: 1827359
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1827359&view=rev
>>> Log:
>>> PR62200: EBCDIC: ap_rgetline APR_ENOSPC
>>>
>>> On EBCDIC systems, translation does not occur in ap_rgetline() if the line is
>>> larger than the buffer size.
>>>
>>> Submitted By: Hank Ibell
>>> Committed By: covener
>>>
>>> Modified:
>>> httpd/httpd/trunk/CHANGES
>>> httpd/httpd/trunk/server/protocol.c
>> []
>>>
>>> Modified: httpd/httpd/trunk/server/protocol.c
>>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/protocol.c?rev=1827359&r1=1827358&r2=1827359&view=diff
>>> ==============================================================================
>>> --- httpd/httpd/trunk/server/protocol.c (original)
>>> +++ httpd/httpd/trunk/server/protocol.c Tue Mar 20 21:17:18 2018
>>> @@ -476,7 +476,7 @@ AP_DECLARE(apr_status_t) ap_rgetline(cha
>>> apr_status_t rv;
>>>
>>> rv = ap_rgetline_core(s, n, read, r, fold, bb);
>>> - if (rv == APR_SUCCESS) {
>>> + if (rv == APR_SUCCESS || APR_STATUS_IS_ENOSPC(rv)) {
>>> ap_xlate_proto_from_ascii(*s, *read);
>>> }
>>> return rv;
>>
>> Since ap_rgetline_core() is accurate/safe about the returned *read
>> (and even NUL byte), can/should not we do this unconditionally?
>
> Maybe, but e.g. even in its current incarnation that early APR_BADARG
> return does not set *read.
Yeah, just noticed that, r1827362 :/
Re: svn commit: r1827359 - in /httpd/httpd/trunk: CHANGES server/protocol.c
Posted by Eric Covener <co...@gmail.com>.
On Tue, Mar 20, 2018 at 5:22 PM, Yann Ylavic <yl...@gmail.com> wrote:
> On Tue, Mar 20, 2018 at 10:17 PM, <co...@apache.org> wrote:
>> Author: covener
>> Date: Tue Mar 20 21:17:18 2018
>> New Revision: 1827359
>>
>> URL: http://svn.apache.org/viewvc?rev=1827359&view=rev
>> Log:
>> PR62200: EBCDIC: ap_rgetline APR_ENOSPC
>>
>> On EBCDIC systems, translation does not occur in ap_rgetline() if the line is
>> larger than the buffer size.
>>
>> Submitted By: Hank Ibell
>> Committed By: covener
>>
>> Modified:
>> httpd/httpd/trunk/CHANGES
>> httpd/httpd/trunk/server/protocol.c
> []
>>
>> Modified: httpd/httpd/trunk/server/protocol.c
>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/protocol.c?rev=1827359&r1=1827358&r2=1827359&view=diff
>> ==============================================================================
>> --- httpd/httpd/trunk/server/protocol.c (original)
>> +++ httpd/httpd/trunk/server/protocol.c Tue Mar 20 21:17:18 2018
>> @@ -476,7 +476,7 @@ AP_DECLARE(apr_status_t) ap_rgetline(cha
>> apr_status_t rv;
>>
>> rv = ap_rgetline_core(s, n, read, r, fold, bb);
>> - if (rv == APR_SUCCESS) {
>> + if (rv == APR_SUCCESS || APR_STATUS_IS_ENOSPC(rv)) {
>> ap_xlate_proto_from_ascii(*s, *read);
>> }
>> return rv;
>
> Since ap_rgetline_core() is accurate/safe about the returned *read
> (and even NUL byte), can/should not we do this unconditionally?
Maybe, but e.g. even in its current incarnation that early APR_BADARG
return does not set *read.
--
Eric Covener
covener@gmail.com
Re: svn commit: r1827359 - in /httpd/httpd/trunk: CHANGES server/protocol.c
Posted by Yann Ylavic <yl...@gmail.com>.
On Tue, Mar 20, 2018 at 10:17 PM, <co...@apache.org> wrote:
> Author: covener
> Date: Tue Mar 20 21:17:18 2018
> New Revision: 1827359
>
> URL: http://svn.apache.org/viewvc?rev=1827359&view=rev
> Log:
> PR62200: EBCDIC: ap_rgetline APR_ENOSPC
>
> On EBCDIC systems, translation does not occur in ap_rgetline() if the line is
> larger than the buffer size.
>
> Submitted By: Hank Ibell
> Committed By: covener
>
> Modified:
> httpd/httpd/trunk/CHANGES
> httpd/httpd/trunk/server/protocol.c
[]
>
> Modified: httpd/httpd/trunk/server/protocol.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/protocol.c?rev=1827359&r1=1827358&r2=1827359&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/server/protocol.c (original)
> +++ httpd/httpd/trunk/server/protocol.c Tue Mar 20 21:17:18 2018
> @@ -476,7 +476,7 @@ AP_DECLARE(apr_status_t) ap_rgetline(cha
> apr_status_t rv;
>
> rv = ap_rgetline_core(s, n, read, r, fold, bb);
> - if (rv == APR_SUCCESS) {
> + if (rv == APR_SUCCESS || APR_STATUS_IS_ENOSPC(rv)) {
> ap_xlate_proto_from_ascii(*s, *read);
> }
> return rv;
Since ap_rgetline_core() is accurate/safe about the returned *read
(and even NUL byte), can/should not we do this unconditionally?