| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
There was a problem hiding this comment.
Thanks for fixing this!
Sorry, something went wrong.
|
Thanks @StanFromIreland for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13, 3.14, 3.15. |
Sorry, something went wrong.
|
Sorry, @StanFromIreland, I could not cleanly backport this to 3.14 due to a conflict. cherry_picker adebb68153346043c0671fa5725d269c32cc40e4 3.14 |
Sorry, something went wrong.
|
GH-153644 is a backport of this pull request to the 3.15 branch. |
Sorry, something went wrong.
|
Sorry, @StanFromIreland, I could not cleanly backport this to 3.13 due to a conflict. cherry_picker adebb68153346043c0671fa5725d269c32cc40e4 3.13 |
Sorry, something went wrong.
|
GH-153645 is a backport of this pull request to the 3.14 branch. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
To reproduce, run test_zstd.CompressorTestCase.test_compress_flushblock or under UBSan:
ZstdDecompressor.unused_data computes self->input_buffer + self->in_begin without checking that input_buffer was ever allocated, so when a frame is fully consumed in a single decompress() call it leaves input_buffer NULL (and in_begin/in_end at their initial state). Reading .unused_data evaluates NULL + ..., which is UB. Although the resulting length of in_end - in_begin == 0 means it accidentally returns the correct b''.
The other unused_data implementations are not affected due to their design.
Also, CC @Rogdham