]>
git.ipfire.org Git - thirdparty/zstd.git/log
Nick Terrell [Sat, 30 Sep 2017 21:17:32 +0000 (14:17 -0700)]
Don't `size -= 1` in ZSTD_adjustCParams()
The window size could end up too small if the source size is 2^n + 1.
Credit to OSS-Fuzz
Yann Collet [Sat, 30 Sep 2017 18:08:50 +0000 (11:08 -0700)]
fix proper naming on FSE_createCTable() arguments in fse.h
Yann Collet [Sat, 30 Sep 2017 05:32:54 +0000 (22:32 -0700)]
Merge pull request #860 from felixhandte/zstd-lz4-support-tests
Add Default LZ4 Support When Available
Yann Collet [Sat, 30 Sep 2017 03:12:25 +0000 (20:12 -0700)]
Merge pull request #875 from facebook/zstdcat
decode more data before triggering error
Yann Collet [Sat, 30 Sep 2017 00:26:46 +0000 (17:26 -0700)]
Merge pull request #873 from facebook/shorterTests
Leaner tests
Yann Collet [Fri, 29 Sep 2017 23:27:47 +0000 (16:27 -0700)]
erase existence of a buffer when it's sent out of the pool
In some complex scenario,
the buffer would be freed because it's too large,
another buffer would be allocated, but fail,
trigger an error,
and the general buffer pool would then be freed,
where the definition of the already freed buffer would be found
(beyond total index, but still), and freed again, resulting in double-free error.
Yann Collet [Fri, 29 Sep 2017 22:54:09 +0000 (15:54 -0700)]
decode more data before triggering error
fixes #874 :
when a frame is not properly terminated by a "last block" signal,
zstd -d used to detect it immediately and error out.
This version will decode and flush the last block, and only then issue an error.
Yann Collet [Fri, 29 Sep 2017 06:01:31 +0000 (23:01 -0700)]
zstdmt : fixed : buffer dst0 wasn't properly set to null after usage
now it's possible to unconditionnally invoke ZSTD_releaseAllJobRessources()
wether previous compression was completed correctly or not.
Yann Collet [Fri, 29 Sep 2017 03:44:22 +0000 (20:44 -0700)]
removed ZSTDMT_waitForAllJobsCompleted() from ZSTDMT_freeCCtx()
as per @terrelln comment
Yann Collet [Fri, 29 Sep 2017 01:34:38 +0000 (18:34 -0700)]
make test : removed zstreamtest unit tests for variants
slightly reduced time to create dictionary
at beginning of unit tests
Yann Collet [Fri, 29 Sep 2017 01:27:22 +0000 (18:27 -0700)]
zstreamtest : run unit tests only during "normal" session
not during --mt, --newapi and --opaque
this avoids running them 4x during `make test`
Yann Collet [Fri, 29 Sep 2017 01:14:28 +0000 (18:14 -0700)]
adjustCParams : restored previous behavior
unknowns srcSize presumed small if there is a dictionary (dictSize>0)
and presumed large otherwise.
W. Felix Handte [Thu, 28 Sep 2017 23:34:39 +0000 (19:34 -0400)]
Update documentation to reflect other format support
W. Felix Handte [Thu, 28 Sep 2017 23:18:15 +0000 (19:18 -0400)]
Add CLI Program Name Detection for LZ4
W. Felix Handte [Fri, 22 Sep 2017 00:30:43 +0000 (17:30 -0700)]
Add basic tests for the lz4 integration
Yann Collet [Thu, 28 Sep 2017 20:49:12 +0000 (13:49 -0700)]
zstdmt : reduced maximum nb of threads
to avoid memory address space issues on 32-bits systems
(see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876416#17)
Yann Collet [Thu, 28 Sep 2017 19:19:28 +0000 (12:19 -0700)]
Merge branch 'dev' into shorterTests
fixed conflicts
Yann Collet [Thu, 28 Sep 2017 18:48:45 +0000 (11:48 -0700)]
zstreamtest --newapi : reduced maximum allocated memory
Yann Collet [Thu, 28 Sep 2017 18:46:19 +0000 (11:46 -0700)]
zstdmt : move on when not enough memory for a new input buffer
just continue operations without input forward progress,
instead of an error that stops current compression session.
Yann Collet [Thu, 28 Sep 2017 09:33:41 +0000 (02:33 -0700)]
fixed minor Visual conversion warning
Yann Collet [Thu, 28 Sep 2017 09:23:44 +0000 (02:23 -0700)]
zstdmt : better behavior when freeing a context right after a memory allocation error
wait for all jobs to be completed, so that freeing can happen safely
Yann Collet [Thu, 28 Sep 2017 09:14:48 +0000 (02:14 -0700)]
minor : rewrite unit tests using CHECK_Z macro
Yann Collet [Thu, 28 Sep 2017 08:42:06 +0000 (01:42 -0700)]
fixed maximum windowLog for zstreamtest --newapi
for compatibility with low memory VM
Yann Collet [Thu, 28 Sep 2017 08:25:40 +0000 (01:25 -0700)]
ensure adjustCParams adjust hLog and cLog even without srcSize
It would previously exit when srcSize is unknown.
But in the case of custom parameters,
hLog and cLog can still be too large in comparison with windowLog.
Reduces maximum memory allocated during zstreamtest --newapi
Yann Collet [Thu, 28 Sep 2017 07:32:16 +0000 (00:32 -0700)]
Merge pull request #863 from facebook/newFormats
magicless frames (#591)
Yann Collet [Thu, 28 Sep 2017 02:12:18 +0000 (19:12 -0700)]
Merge pull request #872 from terrelln/fuzz-minor
[fuzz] Small changes for oss-fuzz integration
Nick Terrell [Thu, 28 Sep 2017 01:23:06 +0000 (18:23 -0700)]
[fuzz] Small changes for oss-fuzz integration
Yann Collet [Thu, 28 Sep 2017 01:00:15 +0000 (18:00 -0700)]
reduced memory usage of zstreamtest --newapi
to run on memory-constrained VM
Yann Collet [Thu, 28 Sep 2017 00:27:38 +0000 (17:27 -0700)]
reduced zstreamtest --mt memory load
adjust compression level, hence memory usage, depending on nb threads
in order to run correctly on memory-starved VM.
Yann Collet [Wed, 27 Sep 2017 23:39:40 +0000 (16:39 -0700)]
Merge branch 'dev' into newFormats
Fixed conflicts in zstdmt_compress.c
Yann Collet [Wed, 27 Sep 2017 23:35:08 +0000 (16:35 -0700)]
Merge pull request #869 from terrelln/dev
[libzstd] pthread function prefixed with ZSTD_
Yann Collet [Wed, 27 Sep 2017 23:34:29 +0000 (16:34 -0700)]
Merge pull request #866 from facebook/list
improved --list display
Yann Collet [Wed, 27 Sep 2017 23:34:15 +0000 (16:34 -0700)]
Merge pull request #871 from terrelln/opt
[libzstd][opt] Simplify repcode logic
Yann Collet [Wed, 27 Sep 2017 22:48:06 +0000 (15:48 -0700)]
separated --long tests between short and long tests
A fast subset of these tests is now played in short test mode
Yann Collet [Wed, 27 Sep 2017 22:38:27 +0000 (15:38 -0700)]
reduced memory requirements for --long tests
in new --long test section
Nick Terrell [Wed, 27 Sep 2017 22:29:07 +0000 (15:29 -0700)]
[libzstd][opt] Simplify repcode logic
Yann Collet [Wed, 27 Sep 2017 22:20:08 +0000 (15:20 -0700)]
improved make clean in tests/fuzz
Yann Collet [Wed, 27 Sep 2017 22:16:27 +0000 (15:16 -0700)]
shorter make test to avoid time out on travis CI
Timed tests (fuzzer) are reduced
Long tests are shortened (less data generated)
Yann Collet [Wed, 27 Sep 2017 20:58:12 +0000 (13:58 -0700)]
Merge pull request #870 from facebook/cpptest
Change c++ test to use CXX and CXXFLAGS environment variables
Yann Collet [Wed, 27 Sep 2017 20:51:05 +0000 (13:51 -0700)]
removed ZSTD_decompressBegin() from ZSTD_initDCtx_internal()
It does not feel "right" from a dependency perspective.
ZSTD_initDCtx_internal() is triggered once, on DCtx creation,
while ZSTD_decompressBegin() is invoked at the beginning of each new frame,
and is also a user-facing prototype.
Downside : a DCtx must be init before first usage !
This was always the intention by the way, and is documented as such.
This stage is automatically done within ZSTD_decompress() and variants,
and also within ZSTD_decompressStream().
Only ZSTD_decompressContinue() is impacted,
it must be preceded by a ZSTD_decompressBegin(), as detailed in doc.
A test has been fixed, to no longer rely on undocumented assumption that ZSTD_decompressBegin() is invoked during init.
Yann Collet [Wed, 27 Sep 2017 19:24:13 +0000 (12:24 -0700)]
switched name to cxxtest
Yann Collet [Wed, 27 Sep 2017 19:22:22 +0000 (12:22 -0700)]
fixed ZSTD_format_e value validation
Yann Collet [Wed, 27 Sep 2017 19:09:52 +0000 (12:09 -0700)]
Change c++ test to use CXX and CXXFLAGS environment variables
Fix OS-X warning on compiling .c files with clang++
Also changed test name from gpptest to cpptest, since it's no longer g++ specific
Nick Terrell [Wed, 27 Sep 2017 18:16:24 +0000 (11:16 -0700)]
[libzstd] pthread function prefixed with ZSTD_
* `sed -i 's/pthread_/ZSTD_pthread_/g' lib/{,common,compress,decompress,dictBuilder}/*.[hc]`
* Fix up `lib/common/threading.[hc]`
* `sed -i s/PTHREAD_MUTEX_LOCK/ZSTD_PTHREAD_MUTEX_LOCK/g lib/compress/zstdmt_compress.c`
Yann Collet [Wed, 27 Sep 2017 18:19:21 +0000 (11:19 -0700)]
updated ZSTD_format_e value validation
also updated manual
Yann Collet [Wed, 27 Sep 2017 17:35:56 +0000 (10:35 -0700)]
changed error code when pos<=size condition is not respected
Now pointing towards src_size or dst_size,
instead of error_GENERIC.
Yann Collet [Wed, 27 Sep 2017 17:29:31 +0000 (10:29 -0700)]
removed unsupported formats
Yann Collet [Wed, 27 Sep 2017 08:01:11 +0000 (01:01 -0700)]
fixed zstreamtest decoding error
same error (wrong output buffer size) was present
on --mt and --new_api tests.
Yann Collet [Wed, 27 Sep 2017 07:39:41 +0000 (00:39 -0700)]
fixed a bug in zstreamtest
decoder output buffer would receive a wrong size.
In previous version, ZSTD_decompressStream() would blindly trust the caller that pos <= size.
In this version, this condition is actively checked,
and the function returns an error code if this condition is not respected.
This check could also be done with an assert(),
but since this is a user-facing interface, it seems better to keep this check at runtime.
Yann Collet [Wed, 27 Sep 2017 01:26:09 +0000 (18:26 -0700)]
fixed DCtx initialization error
now relying on initialization of dctx->format first
Yann Collet [Wed, 27 Sep 2017 00:57:38 +0000 (17:57 -0700)]
silence minor gcc warning -Wempty-body
also silence fuzz test artefacts
Yann Collet [Tue, 26 Sep 2017 23:26:29 +0000 (16:26 -0700)]
Merge pull request #864 from terrelln/long
Increase maximum window size
Yann Collet [Tue, 26 Sep 2017 22:36:57 +0000 (15:36 -0700)]
switch assert() position
Yann Collet [Tue, 26 Sep 2017 22:36:14 +0000 (15:36 -0700)]
created ZSTD_startingInputLength()
as suggested by @terrelln
Yann Collet [Tue, 26 Sep 2017 22:06:30 +0000 (15:06 -0700)]
minor fixes following @terrelln comments
Yann Collet [Tue, 26 Sep 2017 21:57:24 +0000 (14:57 -0700)]
Merge pull request #867 from terrelln/fast-fuzz
[fuzz] Speed up round trip tests
Yann Collet [Tue, 26 Sep 2017 21:31:06 +0000 (14:31 -0700)]
fixed constant errors for gcc in c99 mode
C standard does not consider a `static const int` as a constant.
This is a problem for initializer, and ZSTD_STATIC_ASSERT().
Replaced by macro values
Yann Collet [Tue, 26 Sep 2017 21:22:39 +0000 (14:22 -0700)]
Merge branch 'dev' into newFormats
Nick Terrell [Tue, 26 Sep 2017 21:03:43 +0000 (14:03 -0700)]
[fuzz] Speed up round trip tests
* Enforce smaller maximum values for parameters
* Adjust parameters to the source size
The memory usage is reduced by about 5x, which makes the fuzzers run at
least twice as fast, even more so with ASAN/MSAN enabled.
Nick Terrell [Fri, 22 Sep 2017 21:04:39 +0000 (14:04 -0700)]
Increase maximum window size
* Maximum window size in 32-bit mode is 1GB, since allocations for 2GB fail
on my Mac.
* Maximum window size in 64-bit mode is 2GB, since that is the largest
power of 2 that works with the overflow prevention.
* Allow `--long=windowLog` to set the window log, along with
`--zstd=wlog=#`. These options also set the window size during
decompression, but don't override `--memory=#` if it is set.
* Present a helpful error message when the window size is too large during
decompression.
* The long range matcher defaults to a hash log 7 less than the window log,
which keeps it at 20 for window log 27.
* Keep the default long range matcher window size and the default maximum
window size at 27 for the API and CLI.
* Add tests that use the maximum window size and hash size for compression
and decompression.
Yann Collet [Tue, 26 Sep 2017 20:53:50 +0000 (13:53 -0700)]
fixed minor conversion warnings for g++ on Linux
U64 is not considered equivalent to unsigned long long
Yann Collet [Tue, 26 Sep 2017 18:21:36 +0000 (11:21 -0700)]
write summary for --list on multiple files
Yann Collet [Tue, 26 Sep 2017 00:11:35 +0000 (17:11 -0700)]
Merge pull request #861 from terrelln/zip
[fuzz][CI] Set up regression tests
Yann Collet [Tue, 26 Sep 2017 00:02:40 +0000 (17:02 -0700)]
Merge pull request #862 from terrelln/static
[zstd] Backport kernel patch from @ColinIanKing
Yann Collet [Mon, 25 Sep 2017 23:21:17 +0000 (16:21 -0700)]
added ZSTD_DCtx_reset()
Yann Collet [Mon, 25 Sep 2017 23:34:29 +0000 (16:34 -0700)]
Merge pull request #855 from terrelln/maxoff
[libzstd] Increase MaxOff
Nick Terrell [Mon, 25 Sep 2017 23:12:46 +0000 (16:12 -0700)]
[zstd] Backport kernel patch from @ColinIanKing
* Make the U32 table in `FSE_normalizeCount()` static.
* Patch from https://lkml.kernel.org/r/
20170922145946 .14316-1-colin.king@canonical.com.
* Clang makes non-static tables static anyways. gcc however, does [weird things](https://godbolt.org/g/fvTcED).
* Benchmarks showed no difference in speed.
Yann Collet [Mon, 25 Sep 2017 22:44:48 +0000 (15:44 -0700)]
added ZSTD_decompress_generic_simpleArgs()
Yann Collet [Mon, 25 Sep 2017 22:41:48 +0000 (15:41 -0700)]
added ZSTD_decompress_generic()
same as ZSTD_decompressStream(),
just for a similar feeling as the compression side, which uses ZSTD_compress_generic()
Nick Terrell [Mon, 25 Sep 2017 22:00:50 +0000 (15:00 -0700)]
[fuzz] Determine flags based on compiler version
Nick Terrell [Mon, 25 Sep 2017 20:33:12 +0000 (13:33 -0700)]
[fuzz][CI] Add regression tests to the CI
Nick Terrell [Mon, 25 Sep 2017 20:32:50 +0000 (13:32 -0700)]
[fuzz] Mention the corpora in the README
Nick Terrell [Mon, 25 Sep 2017 20:29:50 +0000 (13:29 -0700)]
[fuzz] Add regressiontest targets
Yann Collet [Mon, 25 Sep 2017 22:25:07 +0000 (15:25 -0700)]
introduced constant ZSTD_frameIdSize
within zstd_internal.h
This is the size of magic number.
Avoids using `4` directly in source code, which is a bit less meaningful.
Yann Collet [Mon, 25 Sep 2017 22:12:09 +0000 (15:12 -0700)]
implemented magic-less frame decoder
Yann Collet [Mon, 25 Sep 2017 21:26:26 +0000 (14:26 -0700)]
added capability to generate magic-less frames
decoder not implemented yet
Nick Terrell [Mon, 18 Sep 2017 23:54:53 +0000 (16:54 -0700)]
[libzstd] Increase MaxOff
Nick Terrell [Mon, 25 Sep 2017 20:28:45 +0000 (13:28 -0700)]
[fuzz] Make simple_round_trip compile cleanly
Nick Terrell [Mon, 25 Sep 2017 20:28:18 +0000 (13:28 -0700)]
[fuzz] Fix fuzz.py env flags parsing
Nick Terrell [Mon, 25 Sep 2017 18:27:33 +0000 (11:27 -0700)]
[fuzz] fuzz.py can minimize and zip corpora
* "minimize" minimizes the corpora into an output directory.
* "zip" zips up the minimized corpora, which are ready to deploy.
Yann Collet [Sun, 24 Sep 2017 23:47:02 +0000 (16:47 -0700)]
minor function rename
ZSTD_estimateCStreamSize_advanced_usingCParams -> ZSTD_estimateCStreamSize_usingCParams
_usingX is clear.
_advanced feels redundant
Yann Collet [Sun, 24 Sep 2017 22:57:29 +0000 (15:57 -0700)]
added prototypes for advanced parameters for decompression API
required to decode custom formats
Yann Collet [Sun, 24 Sep 2017 21:33:37 +0000 (14:33 -0700)]
Merge branch 'dev' into newFormats
W. Felix Handte [Thu, 21 Sep 2017 18:29:35 +0000 (11:29 -0700)]
Adds LZ4 support by default if LZ4 is available
Simple makefile change + quick typename change
Test:
make clean
make
# successfully produces binary without lz4 support
make clean
# with flags to pick up my lz4 build
make MOREFLAGS="-L/home/felixh/prog/lz4/lib -I/home/felixh/prog/lz4/lib"
# successfully produces binary with lz4 support
echo "TEST TEST TEST THIS IS A TEST STRING PLEASE TEST THIS PLEASE OK THANK YOU" | \
./lz4/lz4 | \
LD_LIBRARY_PATH=/home/felixh/prog/lz4/lib ./zstd/zstd -d
# successfully prints TEST TEST TEST THIS IS A TEST STRING PLEASE TEST THIS PLEASE OK THANK YOU
Yann Collet [Fri, 22 Sep 2017 16:01:39 +0000 (09:01 -0700)]
Merge pull request #859 from terrelln/31
Prepare for ZSTD_WINDOWLOG_MAX == 31
Yann Collet [Fri, 22 Sep 2017 00:24:43 +0000 (17:24 -0700)]
Merge pull request #858 from facebook/controlSize
added control of frame content size at end of decompression
Nick Terrell [Thu, 21 Sep 2017 23:18:34 +0000 (16:18 -0700)]
Prepare for ZSTD_WINDOWLOG_MAX == 31
Yann Collet [Thu, 21 Sep 2017 23:21:10 +0000 (16:21 -0700)]
added control from frame content size at end of decompression
adding check at end of single-pass ZSTD_decompressFrame().
Check within ZSTD_decompressContinue() was already added in a previous patch :
b3f33ccfb3b4fcc73df82126fd5ecfb751268fc6
Yann Collet [Thu, 21 Sep 2017 23:08:06 +0000 (16:08 -0700)]
Merge branch 'dev' into newFormats
Yann Collet [Thu, 21 Sep 2017 23:07:29 +0000 (16:07 -0700)]
created ZSTD_format declaration
Yann Collet [Tue, 19 Sep 2017 21:59:21 +0000 (14:59 -0700)]
Merge pull request #850 from terrelln/fse-optimal
[fse] Fix FSE_optimalTableLog() for srcSize==1
Yann Collet [Tue, 19 Sep 2017 21:25:10 +0000 (14:25 -0700)]
Merge pull request #849 from terrelln/30
[bitstream] Allow adding 31 bits at a time
Yann Collet [Tue, 19 Sep 2017 21:22:08 +0000 (14:22 -0700)]
Merge pull request #857 from terrelln/bad-assert
Fix minor fuzz test failures
Nick Terrell [Sat, 16 Sep 2017 00:44:09 +0000 (17:44 -0700)]
[bitstream] Allow adding 31 bits at a time
Nick Terrell [Tue, 19 Sep 2017 20:49:37 +0000 (13:49 -0700)]
[ldm] Fix corner case where minMatch < 8
There is a potential read buffer overflow when minMatch < 8.
fix-fuzz-failure
Nick Terrell [Tue, 19 Sep 2017 20:46:07 +0000 (13:46 -0700)]
[libzstd] Fix bad window size assert
The window size is not validated or used in the one-pass API, so there
shouldn't be an assert based on it.
fix-fuzz-failure
Yann Collet [Mon, 18 Sep 2017 22:50:14 +0000 (15:50 -0700)]
Merge branch 'dev' of github.com:facebook/zstd into dev
Yann Collet [Mon, 18 Sep 2017 22:49:59 +0000 (15:49 -0700)]
added streaming_memory_usage example
Yann Collet [Mon, 18 Sep 2017 22:21:23 +0000 (15:21 -0700)]
Merge pull request #853 from terrelln/blog
[zstdcli] Fix LDM advanced options parsing
Yann Collet [Mon, 18 Sep 2017 22:10:02 +0000 (15:10 -0700)]
Merge pull request #852 from facebook/fix851
fix #851 : sudo zstd -t file.zst changes /dev/null permissions