hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitry Potapov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPCORE-372) ChunkedInputStream and ChunkDecoder allows closing chunk absence
Date Thu, 06 Feb 2014 14:44:11 GMT

    [ https://issues.apache.org/jira/browse/HTTPCORE-372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13893390#comment-13893390
] 

Dmitry Potapov commented on HTTPCORE-372:
-----------------------------------------

Oleg,

I'm not sure I've got you correct.
ChunkDecoder lines 180-181 become unreachable,  that's why whole block on lines 179-182 was
removed. New block at lines 90-100 follows the same logic as in past for case when endOfStream
== false; for endOfStream == true case I fill cr and lf with zeroes to have exception thrown
at line 102, so, no new throws needed to indicate protocol violation.

So, I see the only one change, which can be introduced here: remove lines 94, 95, 124 and
125 which sets state to COMPLETED and completed flag to true.

If you have any other considerations concerning these changes, please, let me know

> ChunkedInputStream and ChunkDecoder allows closing chunk absence
> ----------------------------------------------------------------
>
>                 Key: HTTPCORE-372
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-372
>             Project: HttpComponents HttpCore
>          Issue Type: Improvement
>          Components: HttpCore, HttpCore NIO
>            Reporter: Dmitry Potapov
>             Fix For: 4.4-alpha1
>
>         Attachments: expect-closing-chunk.patch
>
>
> I've found that both these classes treats chunked streams without closing chunk as complete
streams without any errors. This contradicts RFC2616 ยง3.6.1
> Consider the following scenario:
> 1. HttpClient sends request to Server
> 2. Server accepts request and send response headers with Transfer-Encoding: chunked
> 3. Server sends first chunk completely and dies with segfault before sending the next
chunk
> 4. HttpClient receives response headers and creates ChunkedInputStream
> 5. ChunkedInputStream reads this first chunk and encounters eof
> Expected result:
> IOException thrown indicating incomplete response
> Actual result:
> No exception is thrown, -1 is returned on the next read and nobody knows that response
is incomplete.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message