mirror of
https://github.com/facebook/zstd
synced 2026-08-22 22:32:07 -04:00
The Huffman repeat mode checker assumed that the CTable was zeroed in the region `[maxSymbolValue + 1, 256)`. This assumption didn't hold for tables built in the dictionaries, because it didn't go through the same codepath. Since this code was originally written, we added a header to the CTable that specifies the `tableLog`. Add `maxSymbolValue` to that header, and check that the table's `maxSymbolValue` is at least the block's `maxSymbolValue`. This solution is cleaner because we write this header for every CTable we build, so it can't be missed in any code path. Credit to OSS-Fuzz |
||
|---|---|---|
| .. | ||
| clevels.h | ||
| fse_compress.c | ||
| hist.c | ||
| hist.h | ||
| huf_compress.c | ||
| zstd_compress.c | ||
| zstd_compress_internal.h | ||
| zstd_compress_literals.c | ||
| zstd_compress_literals.h | ||
| zstd_compress_sequences.c | ||
| zstd_compress_sequences.h | ||
| zstd_compress_superblock.c | ||
| zstd_compress_superblock.h | ||
| zstd_cwksp.h | ||
| zstd_double_fast.c | ||
| zstd_double_fast.h | ||
| zstd_fast.c | ||
| zstd_fast.h | ||
| zstd_lazy.c | ||
| zstd_lazy.h | ||
| zstd_ldm.c | ||
| zstd_ldm.h | ||
| zstd_ldm_geartab.h | ||
| zstd_opt.c | ||
| zstd_opt.h | ||
| zstdmt_compress.c | ||
| zstdmt_compress.h | ||