Bug fix & run overflow correction much more frequently in tests #2603
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.
windowLog < cycleLog
. Previously, wegot the correction wrong in this case, and our chain tables and binary
trees would be corrupted. Now, we work as long as
maxDist
is a powerof two, by adding
MAX(maxDist, cycleSize)
to our indices.ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY
is defined to non-zerorun overflow correction as frequently as allowed without impacting
compression ratio.
ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY
infuzzer
andzstreamtest
as well as all the OSS-Fuzz fuzzers. This has a 5-10%speed penalty at most, which seems reasonable.
This change allows both the OSS-Fuzz fuzzers and
fuzzer
andzstreamtest
to all catch theZSTD_reduceIndex()
bug, as well as the assertion failure.