Age | Commit message (Collapse) | Author |
|
The zlib manual does not specify a strict contract for
inflateGetDictionary(), it merely says that it "Returns the sliding
dictionary being maintained by inflate", which is an implementation
detail. IBM Z inflate's behavior differs from that of software, and
may change in the future to boot.
|
|
Remove workaround in switchlevels.c, so we do actual testing of this.
Use named defines instead of magic numbers where we can.
|
|
|
|
|
|
|
|
|
|
in example.
|
|
failed test case.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Added GitHub Actions CI for testing pigz.
|
|
not supported by gz functions.
https://oss-fuzz.com/testcase-detail/6194422837542912
|
|
|
|
combinations.
|
|
|
|
|
|
http://infozip.sourceforge.net/ is sadly not having HTTPS access
enabled. Shoutout to somebody with admin access for this project:
It would be nice to enable it and thus allowing secure access to
these pages via https://infozip.sourceforge.io/ . The option has
been there for a while now:
https://sourceforge.net/blog/introducing-https-for-project-websites/
also:
- follow permanent redirects
- add ending slashes
|
|
|
|
value then outmode[2] for better coverage.
|
|
|
|
Add casts in order to fix the following warnings [1]:
C:\Users\Nathan\Source\zlib-ng\test\deflate_quick_block_open.c(62,69): warning C4244: '=': conversion from '__int64' to
'uint32_t', possible loss of data [C:\Users\Nathan\Source\zlib-ng\deflate_quick_block_open.vcxproj]
C:\Users\Nathan\Source\zlib-ng\test\deflate_quick_block_open.c(73,1): warning C4244: 'initializing': conversion from '_
_int64' to 'uint32_t', possible loss of data [C:\Users\Nathan\Source\zlib-ng\deflate_quick_block_open.vcxproj]
[1] https://github.com/zlib-ng/zlib-ng/pull/880#issuecomment-802432700
|
|
Commit bc5915e2dec7 ("Fixed unsigned integer overflow ASAN error when
hash_head > s->strstart.") removed hash_head != 0 checks in fast,
medium and slow deflate, because it improved performance [1].
Unfortunately, the attached test started failing after that.
Apparently, as the comments suggest, the code implicitly relies on
matches with the beginning of the window being skipped. So restore the
check.
[1] https://github.com/zlib-ng/zlib-ng/pull/772#issuecomment-710760300
|
|
The attached test fails with "inflate() failed", because the deflate
stream that it produces ends up being corrupted. Bisect points to the
commit e7bb6db09a18 ("Replace hash_bits, hash_size and hash_mask with
defines."), but it's most likely a coincidence.
In any case, the reason is that if we happen to simultaneously exhaust
all the buffers (in, out and bi), we return finish_started without
writing the end of block symbol, which will never happen afterwards.
Fix by adding another check to the tricky condition: if we are in the
middle of a block, return need_more instead of finish_started.
|
|
The attached test started failing after commit ad89d5131b29 ("Don't
write end of last block when returning finish_started."): either with
"bi_buf not flushed" message in debug builds, or by producing corrupted
output in release builds.
The problem is that we must not return finish_started when bi_buf is
not empty, because the bits there will be lost. Fix by checking that
bi_valid is not 0.
|
|
CHOST detection.
|
|
|
|
|
|
_POSIX_C_SOURCE.
|
|
Fixes: #776
|
|
|
|
|
|
example.c:920:16: warning: dereference of possibly-NULL ‘head’ [CWE-690] [-Wanalyzer-possible-null-dereference]
920 | head->text = 1;
| ~~~~~~~~~~~^~~
‘test_deflate_set_header’: event 1
|
| 906 | PREFIX(gz_header) *head = calloc(1, sizeof(PREFIX(gz_header)));
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (1) this call could return NULL
|
|
|
|
* Don't unroll distances smaller than chunk size.
|
|
|
|
|
|
|
|
Verifies that zlib-ng's ABI has not changed since the reference commit
(indicated by variables ABI_URL and ABI_COMMIT in the script).
If --zlib-compat is given, the reference commit is zlib's 1.2.11;
otherwise, it's zlib-ng's 1d2504ddc489 (for now).
Ignores new symbols entirely, as they probably don't break backwards compatibility.
Ignores warnings listed in test/abi/ignore, currently, just those related to internal_state or z_stream*.
If --refresh is given, actually checks out the reference commit,
builds it, and stores its ABI description into an .abi file;
otherwise just uses the .abi file saved in git for that CHOST.
(--refresh_if is similar, but only does the above if the file
is not present.)
Fixes https://github.com/zlib-ng/zlib-ng/issues/699
Known issues:
- pkgcheck.yml skips -m32 abicheck failures loudly until #705 is fixed
- although abicheck.sh supports -m32 (if in both CFLAGS and LDFLAGS), it doesn't yet support -32 in CONFIGURE_ARGS.
- only includes a few abi definitions; the rest can be added in a followon commit (see --refresh).
|
|
* Reintroduce support for ZLIB_CONST in compat mode.
|
|
zlib-ng already counts on inttypes.h and stdint.h, so use those to avoid
printf-related warnings by casting integer fields whose size may vary to
uint64_t and printing them that way.
|
|
infcover.c(247,35): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data
|
|
infcover.c:378:56: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
infcover.c:378:56: note: use array indexing to silence this warning
|
|
platforms.
Also:
- use same name for .so on CMake and configure in --zlib-compat case
- configure: merge i686 and x86_64 sections, since they were essentially identical
- pkgcheck.sh: verify resulting shared libraries are bit-for-bit identical
- pkgcheck.sh: use diffoscope if present to show differences in shared libraries
Don't install diffoscope in ci, since that slows down successful
runs; we can add it later if failures become common.
Fixes #638 (at least for the systems tested)
|
|
Also make compat mode .pc files identical.
- cmake: don't do runtime feature checks when doing native builds.
- test/pkgcheck.sh: also compare .a, check compat mode, and handle mac better
- CMakeLists.txt: get Version right in compat mode .pc file
- .github/workflows/pkgcheck.sh: test on more systems, including mac
Fixes #681
|
|
|