Yann Collet
78f4fdbb89
Merge pull request #923 from lz4/fix784
...
fix efficiency of LZ4_compress_HC_destSize()
2020-09-28 14:04:56 -07:00
Yann Collet
89736e4e27
ensure last match not too close to end
...
must respect MFLIMIT distance from oend
2020-09-27 23:59:56 -07:00
Yann Collet
a13c79d56d
fix incorrect counting
...
after truncation of last sequence
2020-09-27 22:47:05 -07:00
Yann Collet
e7fe105ac6
fix efficiency of LZ4_compress_HC_destSize()
...
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.
2020-09-27 21:04:40 -07:00
Yann Collet
ee4f37d284
fix compressing into NULL
...
fails properly
bug discovered by oss-fuzz
2020-09-26 11:31:57 -07:00
Yann Collet
da1272979f
fix #847
...
support NULL input
without triggering undefined sanitizer
2020-09-15 14:54:53 -07:00
Yann Collet
4f33a5935b
added test triggering NULL arithmetic with usan
...
described in #847
2020-09-15 13:45:06 -07:00
Yann Collet
8b75d403d8
fixed minor pre-existing printf formatting
...
different signedness
2020-08-27 09:20:01 -07:00
Yann Collet
875308f31f
fixed strict c90 support
2020-08-27 00:38:58 -07:00
Yann Collet
c5d6f8a8be
fix #783
...
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.
2020-08-27 00:17:57 -07:00
Yann Collet
f9f3fdfb1c
added test decompress-partial with extraneous input bytes
...
fails currently,
for investigation of #783
2020-08-12 14:39:01 -07:00
W. Felix Handte
9af86f0841
Remove dirty Field From LZ4_stream_t
2020-08-06 16:06:40 -04:00
Yann Collet
2cacdd2142
fix minor cppcheck warnings
2019-06-30 15:36:32 -07:00
Yann Collet
4e87942529
frametest: added LZ4F decoder noise test
2019-06-30 13:59:49 -07:00
Yann Collet
3b917ef6e6
travisCI: added ASAN fuzzer tests
...
and fixed minor formatting warnings
2019-06-28 20:55:47 -07:00
Yann Collet
567b4e098b
moved noisy-src decoder test into cBuffer_exact
...
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).
2019-06-28 20:23:12 -07:00
Yann Collet
62f59d562b
fuzzer: added test to catch #738
2019-06-28 20:15:43 -07:00
Yann Collet
6c69ae6bd6
added test case for in-place decompression
...
worst case, designed to make the decoder overwrite into input
2019-05-30 16:17:47 -07:00
Yann Collet
b2ba857a4f
fuzzer: changed internal buffer size
...
to ensure no overflow during unit tests
2019-05-29 13:33:55 -07:00
Yann Collet
45eba5b030
one more conversion warning
2019-05-29 13:17:45 -07:00
Yann Collet
76116495bf
some more minor conversion warnings fixes
2019-05-29 13:14:52 -07:00
Yann Collet
c5bcb4d68b
fixed minor conversion warning
2019-05-29 12:56:27 -07:00
Yann Collet
b17f578a91
added comments and macros for in-place (de)compression
2019-05-29 12:06:13 -07:00
Yann Collet
4fc6b48550
added test case for in-place compression
2019-05-29 11:19:10 -07:00
Yann Collet
ae199124e5
fixed read-after input in LZ4_decompress_safe()
2019-04-18 18:50:51 -07:00
Yann Collet
4790994568
fuzzer : reduced stack usage
2019-04-18 17:12:14 -07:00
Yann Collet
6cb084ed36
fuzzer: reduce stack usage to please Visual static analyzer
2019-04-18 17:01:36 -07:00
Yann Collet
0b876db6d4
address a few minor Visual warnings
...
and created target cxx17build
2019-04-18 16:07:16 -07:00
Yann Collet
4f6de46f60
fix several minor static analyzer warnings
2019-04-18 12:05:50 -07:00
Yann Collet
3f558163ad
fuzzer: fixed scan-build leak warning
...
the program exit(),
so there is no need to track and dealloc every buffer.
2019-04-18 10:38:51 -07:00
Yann Collet
8f0e744063
fuzzer: fix explicit cast for C++
2019-04-17 15:44:14 -07:00
Yann Collet
1ed69691a1
fuzzer: added tests to detect LZ4_decompress_fast() out of bound read
2019-04-17 13:31:24 -07:00
Norm Green
1848ea5cbd
Fix AIX errors/warnings
2019-04-17 09:20:09 -07:00
Yann Collet
ce0f316989
fix fuzzer tests on dirty context
...
context is no longer dirty after a failed compressed block.
Actually, all indexes are fine.
It remains compatible with continued streaming, and reset*_fast().
2019-04-15 11:12:54 -07:00
Yann Collet
63bfb64b80
and even more visual conversion warnings
2019-04-12 17:40:23 -07:00
Yann Collet
d8d5f14138
fixed loadDictHC
...
by making a full initialization
instead of a fast reset.
2019-04-09 15:37:59 -07:00
Yann Collet
14c71dfa9c
modified LZ4_initStreamHC() to look like LZ4_initStream()
...
it is now a pure initializer, for statically allocated states.
It can initialize any memory area, and because of this, requires size.
2019-04-09 13:55:42 -07:00
Yann Collet
2ece0d8380
created LZ4_initStream()
...
- promoted LZ4_resetStream_fast() to stable
- moved LZ4_resetStream() into deprecate, but without triggering a compiler warning
- update all sources to no longer rely on LZ4_resetStream()
note : LZ4_initStream() proposal is slightly different :
it's able to initialize any buffer, provided that it's large enough.
To this end, it accepts a void*, and returns an LZ4_stream_t*.
2019-04-05 12:56:26 -07:00
Yann Collet
2a94faf462
fixed _GNU_SOURCE duplicate
2019-04-05 11:55:34 -07:00
Yann Collet
a4f1635b0a
fuzzer: fixed strict c99 with mmap+MAP_ANONYMOUS
2019-04-05 11:47:06 -07:00
Yann Collet
c491df54ec
created LZ4_initStreamHC()
...
- promoted LZ4_resetStreamHC_fast() to stable
- moved LZ4_resetStreamHC() to deprecated (but do not generate a warning yet)
- Updated doc, to highlight difference between init and reset
- switched all invocations of LZ4_resetStreamHC() onto LZ4_initStreamHC()
- misc: ensure `make all` also builds /tests
2019-04-04 17:05:11 -07:00
Yann Collet
7a39fb8fb6
make _fast*()
decoder generate a deprecation warning
...
updated modification
2019-04-04 12:47:36 -07:00
Yann Collet
186015a5d2
fixed strict C++ compilation
2019-01-09 13:45:42 -08:00
Yann Collet
baed01a9c7
fixed long sequence overflow test
2019-01-09 13:38:33 -08:00
Yann Collet
fbebf0345d
minor explicit cast warning
2019-01-09 13:18:43 -08:00
Yann Collet
7741c60f98
add a test to check long sequences ( #631 )
...
the test fails, as intended,
since #631 is not merged yet in this branch.
2019-01-09 12:09:52 -08:00
Lzu Tao
b9d3080d75
clang: Fix -Wcast-qual
2018-12-02 20:30:25 +07:00
Lzu Tao
0241755dbf
Fix clang warnings: -Wformat-pedantic and -Werror=overflow
2018-12-02 20:12:24 +07:00
Oleg Khabinov
f27ea0774e
Adding information about dirty context for _HC_ family of functions
2018-10-10 10:33:04 -07:00
Oleg Khabinov
28eb88d988
Some followups and renamings
2018-10-01 15:19:45 -07:00