zstd/lib/compress
Nick Terrell 33fb966e56 Fix overflow protection with wlog=31
The overflow protection is broken when the window log is `> (3U << 29)`, so 31.
It doesn't work when `current` isn't around `1U << windowLog` ahead of `lowLimit`,
and the the assertion `current > newCurrent` fails. This happens when the same
context is used many times over, but with a large window log, like in zstdmt.

Fix it by triggering correction based on `nextSrc - base` instead of `lowLimit`.

The added test fails before the patch, and passes after.
2018-03-14 11:45:44 -07:00
..
fse_compress.c minor nit from Mac XCode 2018-02-22 15:44:26 -08:00
huf_compress_impl.h [compress] Support BMI2 2018-02-14 19:20:32 -08:00
huf_compress.c fixed wrong size test 2018-02-26 18:27:51 -08:00
zstd_compress_impl.h [compress] Support BMI2 2018-02-14 19:20:32 -08:00
zstd_compress_internal.h Fix overflow protection with wlog=31 2018-03-14 11:45:44 -07:00
zstd_compress.c Fix overflow protection with wlog=31 2018-03-14 11:45:44 -07:00
zstd_double_fast.c Split the window state into substructure 2018-02-26 13:29:57 -08:00
zstd_double_fast.h Split ZSTD_CCtx into smaller sub-structures 2018-01-16 11:17:50 -08:00
zstd_fast.c added negative compression levels 2018-03-11 05:21:53 -07:00
zstd_fast.h Split ZSTD_CCtx into smaller sub-structures 2018-01-16 11:17:50 -08:00
zstd_lazy.c Split the window state into substructure 2018-02-26 13:29:57 -08:00
zstd_lazy.h Split ZSTD_CCtx into smaller sub-structures 2018-01-16 11:17:50 -08:00
zstd_ldm.c Fix overflow protection with wlog=31 2018-03-14 11:45:44 -07:00
zstd_ldm.h LDM manages its own window round buffer 2018-02-27 12:13:23 -08:00
zstd_opt.c Split the window state into substructure 2018-02-26 13:29:57 -08:00
zstd_opt.h Split ZSTD_CCtx into smaller sub-structures 2018-01-16 11:17:50 -08:00
zstdmt_compress.c fixed several comments are underlined by @terrelln 2018-03-13 14:23:14 -07:00
zstdmt_compress.h zstdmt: applies new parameters on the fly 2018-02-02 15:58:13 -08:00