| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
fix efficiency of LZ4_compress_HC_destSize()
|
| |
| |
| |
| |
| |
| | |
applying new more accurate formula from LZ4_compress_HC_destSize()
also : fix some minor display issue in tests/frametest
|
| |
| |
| |
| | |
must respect MFLIMIT distance from oend
|
| |
| |
| |
| | |
after truncation of last sequence
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
LZ4_compress_HC_destSize() had a tendency
to discard its last match when this match overflowed specified dstBuffer limit.
The impact is generally moderate,
but occasionally huge,
typically when this last match is very large
(such as compressing a bunch of zeroes).
Issue #784 fixed for both Chain and Opt implementations.
Added a unit test suggested by @remittor checking this topic.
|
|/
|
|
|
| |
fails properly
bug discovered by oss-fuzz
|
| |
|
|
|
|
| |
properly track history
|
|\ |
|
| |
| |
| |
| |
| | |
support NULL input
without triggering undefined sanitizer
|
|/
|
|
|
|
| |
which now fails with a clear error as intended
(not just print a status and move on).
should be reproduced on travisCI
|
|
|
|
| |
described in #847
|
|
|
|
| |
different signedness
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LZ4_decompress_safe_partial()
now also supports a scenario where
nb_bytes_to_generate is <= block_decompressed_size
And
nb_bytes_to_read is >= block_compressed_size.
Previously, the only supported scenario was
nb_bytes_to_read == block_compress_size.
Pay attention that,
if nb_bytes_to_read is > block_compressed_size,
then, necessarily, it requires that
nb_bytes_to_generate is <= block_decompress_size.
If both are larger, it will generate corrupted data.
|
|\ |
|
| | |
|
| |
| |
| |
| | |
notably in association with `stdin`
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
EndMark, the 4-bytes value indicating the end of frame,
must be `0x00000000`.
Previously, it was just mentioned as a `0-size` block.
But such definition could encompass uncompressed blocks of size 0,
with a header of value `0x80000000`.
But the intention was to also support uncompressed empty blocks.
They could be used as a keep-alive signal.
Note that compressed empty blocks are already supported,
it's just that they have a size 1 instead of 0 (for the `0` token).
Unfortunately, the decoder implementation was also wrong,
and would also interpret a `0x80000000` block header as an endMark.
This issue evaded detection so far simply because
this situation never happens, as LZ4Frame always issues
a clean 0x00000000 value as a endMark.
It also does not flush empty blocks.
This is fixed in this PR.
The decoder can now deal with empty uncompressed blocks,
and do not confuse them with EndMark.
The specification is also clarified.
Finally, FrameTest is updated to randomly insert empty blocks during fuzzing.
|
| |
| |
| | |
* fix issue #783
|
|/
|
|
|
| |
fails currently,
for investigation of #783
|
|\
| |
| | |
Fix #876
|
| |
| |
| |
| |
| |
| | |
with huge values, as expected from #876
Also : added target `check`
|
|/ |
|
|\
| |
| | |
Fix issue #865
|
| | |
|
|/
|
|
| |
Add condition for OpenBSD, which uses gmake
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
could trigger %0 on exceptional circumstances
due to wrong buffer size parameter.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's now possible to select a custom LZ4_DISTANCE_MAX at compile time,
provided it's <= 65535.
However, in some cases (when compressing in byU16 mode),
the new distance wasn't respected,
as it used to implied that it was necessarily within range.
Added a distance check for this case.
Also : added a new TravisCI test which ensures that
custom LZ4_DISTANCE_MAX compiles correctly
and compresses correctly (relying on `assert()` to find outsized offsets).
|
| |
|
|
|
|
|
|
| |
so that noisy src decompression
doesn't generate output
nor fails when decompression fails (which is expected).
|
| |
|
|
|
|
| |
and fixed minor formatting warnings
|
|
|
|
|
| |
so that it can also catch any potential read out-of-bound in the input buffer
(none reported so far, just a precaution for the future).
|
| |
|
|\
| |
| | |
fullbench: added test scenario LZ4F_decompress_followHint
|
| |
| |
| |
| | |
Visual Studio seems to miss that they are necessarily initialized in the switch() { case: }
|
| |
| |
| |
| |
| | |
by for (;;)
just to please Visual Studio C4127 .
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This emulates a streaming scenario,
where the caller follows rigorously the srcSize hints
provided as return value of LZ4F_decompress().
This is useful to show the issue in #714,
where data is uselessly copied in a tmp buffer first.
|
| |
| |
| |
| | |
worst case, designed to make the decoder overwrite into input
|
| |
| |
| |
| | |
to ensure no overflow during unit tests
|
| | |
|