| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
|
|
|
|
| |
- only play listTest with `make test`, not `make all` which is limited to build
- update `clangtest`, so that it's possible to disable O3 optimization, for faster processing
|
|
|
|
|
|
|
|
|
| |
Improve formatting
Include static assert
Use UTIL_fseek to handle potential fseek limitation
Be explicit when refusing to read from stdin
Properly free dctx after use
Include valgrind tests
|
| |
|
|
|
|
|
|
| |
Change test-amalgamation to follow each-rule-makes-a-single-target idiom.
Fixes: a7e8d394 ("[amalgamation] add test")
|
|
|
|
|
|
| |
Use the same compilation options to compile lz4_all.c and other object files.
Fixes: a7e8d394 ("[amalgamation] add test")
|
|
|
|
|
|
|
|
|
|
| |
Use the list of prerequisites instead of listing those files manually,
this way they will never fall out of sync.
Also update the amalgamation example to use a single cat command.
Fixes: a7e8d394 ("[amalgamation] add test")
Fixes: b192c86b ("[amalgamation] lz4frame.c")
|
|
|
|
|
|
|
| |
Add $(LZ4DIR)/lz4frame.c to the list of prerequisites as the rule uses
that file.
Fixes: b192c86b ("[amalgamation] lz4frame.c")
|
|
|
|
|
|
| |
Moved a few other tests to Makefiles.inc. Other things might need to go there.
Made a test for symlink appropriateness. Windows can NOT handle them the same way Unix-like operating systems do (if at all). This is mostly the same as the Visual C projects.
embed version info into .dll and .exes that are redistributed.
|
|\
| |
| | |
--list
|