On Tue, Mar 20, 2018 at 10:33 PM, Eric Covener <[email protected]> wrote:
> On Tue, Mar 20, 2018 at 5:22 PM, Yann Ylavic <[email protected]> wrote:
>> On Tue, Mar 20, 2018 at 10:17 PM,  <[email protected]> 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 :/

Reply via email to