Repository navigation
decompress: return the skippable header size from ZSTD_frameHeaderSize() - #4834
ilyas-mallah wants to merge 1 commit into
Conversation
|
Hi @ilyas-mallah! Thank you for your pull request and welcome to our community. Action RequiredIn order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you. ProcessIn order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA. Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks! |
|
Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks! |
|
@Cyan4973 — small API correctness fix: |
What and why
For a skippable frame,
ZSTD_getFrameHeader()reports a header size of 8, as the format spec says: a 4-byteMagic_Numberand a 4-byteFrame_Size.ZSTD_frameHeaderSize()doesn't check the magic number. It reads the low byte ofFrame_Sizeas aFrame_Header_Descriptorand returns whatever header size that byte would describe, anything from 6 to 18. A skippable frame with 5 bytes of content gives 7.Internal callers only use the internal version for zstd frames, so only the public function's result changes. The new test sits with the other skippable frame tests in
tests/fuzzer.c, fails ondevand passes with this change, andmake -C tests test-fuzzerpasses.Checklist
Tools used
AI usage: Claude Code helped with the test runs. I traced the mismatch, made the fix, and validated every change.