On 14 May 2013, at 11:56 PM, Roy T. Fielding <field...@gbiv.com> wrote:

>> I am currently getting to the bottom of a test case that checks httpd's 
>> response to an abnormally large chunk extension from a reverse proxy server. 
>> What httpd does now is trigger an error, causing both the upstream and 
>> downstream connections to be terminated and truncated. Is this the correct 
>> way to respond to this?
> 
> Is there any other way to handle it?  How long are we talking about?
> I certainly wouldn't try to process more than a single input buffer.

The test attempts a chunk-ext length of just over 16k, which is big enough to 
trigger the HTTP_IN filter to error out with APR_ENOSPC. Because the status and 
headers have already been sent, httpd has no choice but to just terminate the 
connection.

>> http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-22#section-4.1 
>> says this:
>> 
>> "All recipients MUST be able to receive and decode the chunked transfer 
>> coding and MUST ignore chunk-ext extensions they do not understand."
>> 
>> Does the above "they do not understand" requirement include the requirement 
>> to ignore chunk-ext extensions that are too long? (For some arbitrary 
>> definition of long)
> 
> Probably, but we can fix the requirement if you think it might be
> a security issue (or just a bit too silly).  Note that sending
> chunk-ext has been deprecated.

It seems there is no formal definition in the spec as to the MUST behaviour 
should a proxy be unable (eg bogus chunk length "ZXY") or unwilling (because of 
size) to decode a chunk.

What should the proxy do in this case?

Regards,
Graham
--

Reply via email to