Fixed transfer-encoding for empty chunked payload #1536
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In release v1.32.0, there was a backwards incompatible change introduced as a (seemingly unintended) side-effect of adding trailer support.
The relevant scenario is in the case of a chunk-encoded request containing only a terminating chunk as its body payload (
0/r/n/r/n
). Previously, the content length would be set to the length of the body (0, in this case) whereas afterwards it stopped doing that for chunked transfers.The consequence of this for the above scenario is that the
Transfer-Encoding: chunked
header that would previously have been removed (when setting the CL) persists. If this request is then (re)used, it will result in a desync, since the header will be sent with no body at all.