Zlib Changelog

What's new in Zlib 1.3.1

Jan 22, 2024
  • Reject overflows of zip header fields in minizip.
  • Fix bug in inflateSync() for data held in bit buffer.
  • Add LIT_MEM define to use more memory for a small deflate speedup.
  • Fix decision on the emission of Zip64 end records in minizip.
  • Add bounds checking to ERR_MSG() macro, used by zError().
  • Neutralize zip file traversal attacks in miniunz.
  • Fix a bug in ZLIB_DEBUG compiles in check_match().

New in Zlib 1.3 (Aug 20, 2023)

  • Building using K&R (pre-ANSI) function definitions is no longer supported.
  • Fixed a bug in deflateBound() for level 0 and memLevel 9.
  • Fixed a bug when gzungetc() is used immediately after gzopen().
  • Fixed a bug when using gzflush() with a very small buffer.
  • Fixed a crash when gzsetparams() is attempted for a transparent write.
  • Fixed test/example.c to work with FORCE_STORED.
  • Fixed minizip to allow it to open an empty zip file.
  • Fixed reading disk number start on zip64 files in minizip.
  • Fixed a logic error in minizip argument processing.

New in Zlib 1.2.13 (Oct 14, 2022)

  • Fix a bug when getting a gzip header extra field with inflateGetHeader(). This remedies CVE-2022-37434.
  • Fix a bug in block type selection when Z_FIXED used. Now the smallest block type is selected, for better compression.
  • Fix a configure issue that discarded the provided CC definition.
  • Correct incorrect inputs provided to the CRC functions. This mitigates a bug in Java.
  • Repair prototypes and exporting of the new CRC functions.
  • Fix inflateBack to detect invalid input with distances too far.

New in Zlib 1.2.12 (Mar 28, 2022)

  • Fix a deflate bug when using the Z_FIXED strategy that can result in out-of-bound accesses.
  • Fix a deflate bug when the window is full in deflate_stored().
  • Speed up CRC-32 computations by a factor of 1.5 to 3.
  • Use the hardware CRC-32 instruction on ARMv8 processors.
  • Speed up crc32_combine() with powers of x tables.
  • Add crc32_combine_gen() and crc32_combine_op() for fast combines.

New in Zlib 1.2.11 (Jun 24, 2019)

  • Fix deflate stored bug when pulling last block from window
  • Permit immediate deflateParams changes before any deflate input

New in Zlib 1.2.8 (Apr 30, 2013)

  • Add new inflateGetDictionary() function
  • Fix bug where gzopen() immediately followed by gzclose() would write an empty file instead of an empty gzip stream.
  • Fix bug in gzclose() when gzwrite() runs out of memory

New in Zlib 1.2.7 (May 4, 2012)

  • Fix bug in gzclose_w() when gzwrite() fails to allocate memory
  • Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen()
  • Add gzopen_w() in Windows for wide character path names
  • Fix type mismatch between get_crc_table() and crc_table

New in Zlib 1.2.6 (Feb 1, 2012)

  • gzread() can now read a file that is being written concurrently
  • gzgetc() is now a macro for increased speed
  • Added a 'T' option to gzopen() for transparent writing (no compression)
  • Added deflatePending() to return the amount of pending output
  • Allow deflateSetDictionary() and inflateSetDictionary() at any time in raw mode
  • deflatePrime() can now insert bits in the middle of the stream
  • configure now creates a configure.log file with all of the results
  • Added a ./configure --solo option to compile zlib with no dependency on any libraries
  • Fixed a problem with large file support macros
  • Fixed a bug in contrib/puff
  • Many portability improvements

New in Zlib 1.2.5 (May 18, 2010)

  • Fixes bugs in gzseek() and gzeof() that were present in version 1.2.4

New in Zlib 1.2.4 (May 18, 2010)

  • Fixed bugs in adler32_combine(), compressBound(), and deflateBound()
  • Wholesale replacement of gz* functions with faster versions
  • As part of that, added gzbuffer(), gzoffset(), gzclose_r(), and gzclose_w() functions
  • Faster Z_HUFFMAN_ONLY and Z_RLE compression for images and other specialized compression
  • Added flush options Z_BLOCK to deflate() and Z_TREES to inflate() for finer control
  • Added inflateReset2() and inflateMark() functions, the latter to aid in random access applications
  • Added LFS (Large File Summit) support for 64-bit file offsets and many other portability improvements
  • Updated examples in examples/ and updated third-party contributions in contrib/