New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix gzip decoding when FLG.FHCRC is set #11805
Merged
normanmaurer
merged 2 commits into
netty:4.1
from
AL333Z:fix-gzip-decoder-with-FHCRC-set
Oct 29, 2021
Merged
Fix gzip decoding when FLG.FHCRC is set #11805
normanmaurer
merged 2 commits into
netty:4.1
from
AL333Z:fix-gzip-decoder-with-FHCRC-set
Oct 29, 2021
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Motivation: The current implementation is not respecting the spec at https://www.ietf.org/rfc/rfc1952, section 2.3. > If FHCRC is set, a CRC16 for the gzip header is present, > immediately before the compressed data. The CRC16 consists > of the two least significant bytes of the CRC32 for all > bytes of the gzip header up to and not including the CRC16. The implementation is reusing the CRC32 logic without taking the two least significant bytes. Modifications: Use a method that respects the spec. Result: When the FLG.FHCRC bit is set, the correct verification algorithm will be used.
normanmaurer
requested changes
Oct 28, 2021
codec/src/main/java/io/netty/handler/codec/compression/JdkZlibDecoder.java
Outdated
Show resolved
Hide resolved
codec/src/main/java/io/netty/handler/codec/compression/JdkZlibDecoder.java
Show resolved
Hide resolved
@AL333Z also please sign our ICLA: https://netty.io/s/icla ... And thanks for the contribution! |
Hi @normanmaurer, I already signed the ICLA before raising this PR. |
@AL333Z Thanks a lot! |
normanmaurer
pushed a commit
that referenced
this pull request
Oct 29, 2021
Motivation: The current implementation is not respecting the spec at https://www.ietf.org/rfc/rfc1952, section 2.3. > If FHCRC is set, a CRC16 for the gzip header is present, > immediately before the compressed data. The CRC16 consists > of the two least significant bytes of the CRC32 for all > bytes of the gzip header up to and not including the CRC16. The implementation is reusing the CRC32 logic without taking the two least significant bytes. Modifications: Use a method that respects the spec. Result: When the FLG.FHCRC bit is set, the correct verification algorithm will be used.
laosijikaichele
pushed a commit
to laosijikaichele/netty
that referenced
this pull request
Dec 16, 2021
Motivation: The current implementation is not respecting the spec at https://www.ietf.org/rfc/rfc1952, section 2.3. > If FHCRC is set, a CRC16 for the gzip header is present, > immediately before the compressed data. The CRC16 consists > of the two least significant bytes of the CRC32 for all > bytes of the gzip header up to and not including the CRC16. The implementation is reusing the CRC32 logic without taking the two least significant bytes. Modifications: Use a method that respects the spec. Result: When the FLG.FHCRC bit is set, the correct verification algorithm will be used.
laosijikaichele
pushed a commit
to laosijikaichele/netty
that referenced
this pull request
Dec 16, 2021
Motivation: The current implementation is not respecting the spec at https://www.ietf.org/rfc/rfc1952, section 2.3. > If FHCRC is set, a CRC16 for the gzip header is present, > immediately before the compressed data. The CRC16 consists > of the two least significant bytes of the CRC32 for all > bytes of the gzip header up to and not including the CRC16. The implementation is reusing the CRC32 logic without taking the two least significant bytes. Modifications: Use a method that respects the spec. Result: When the FLG.FHCRC bit is set, the correct verification algorithm will be used.
raidyue
pushed a commit
to raidyue/netty
that referenced
this pull request
Jul 8, 2022
Motivation: The current implementation is not respecting the spec at https://www.ietf.org/rfc/rfc1952, section 2.3. > If FHCRC is set, a CRC16 for the gzip header is present, > immediately before the compressed data. The CRC16 consists > of the two least significant bytes of the CRC32 for all > bytes of the gzip header up to and not including the CRC16. The implementation is reusing the CRC32 logic without taking the two least significant bytes. Modifications: Use a method that respects the spec. Result: When the FLG.FHCRC bit is set, the correct verification algorithm will be used.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Motivation:
The current implementation is not respecting the spec at https://www.ietf.org/rfc/rfc1952, section 2.3.
The current implementation is reusing the CRC32 logic without taking the two least significant bytes.
Modifications:
Use a method that respects the spec.
Result:
When the FLG.FHCRC bit is set, the correct verification algorithm will be used.
Related: http4s/http4s#5417