What's new in OptiPNG 0.7.8
Nov 4, 2023
- Upgraded libpng to version 1.6.40.
- Upgraded zlib to version 1.3-optipng.
- Upgraded cexcept to version 2.0.2-optipng.
- Fixed a global-buffer-overflow vulnerability in the GIF reader.
- [Reported by Zeng Yunxiang; fixed by Thomas Hurst]
- Fixed a stack-print-after-scope defect in the error handler.
- Fixed an assertion failure in the image reduction module.
- Fixed the command-line wildargs expansion in the Windows port.
- Raised the minimum required libpng version from 1.2.9 to 1.6.35.
- Raised the minimum required zlib version from 1.2.1 to 1.2.8.
- Refactored the structured exception handling.
New in OptiPNG 0.7.7 (Dec 28, 2017)
- Upgraded libpng to version 1.6.34.
- Upgraded zlib to version 1.2.11-optipng.
- Upgraded minitiff to version 0.2.
- Fixed a buffer overflow vulnerability in the GIF decoder.
- Fixed an integer overflow vulnerability in the TIFF decoder.
- Fixed the build on DJGPP.
- Disallowed out-of-bounds values in rangeset options.
New in OptiPNG 0.7.6 (Dec 28, 2017)
- Upgraded libpng to version 1.6.21.
- Fixed an assertion failure in the image reduction code. [Fixed by upgrading libpng]
- Fixed various security-sensitive defects in the BMP decoder.
- Fixed a benign uninitialized memory read in the GIF decoder.
- Fixed a build failure occurring under the Estonian (et_EE) locale.
- Fixed a build failure occurring on Mac OS X, FreeBSD, and possibly other systems that lack POSIX-compliant high-resolution timestamps.
- Fixed a typo causing build failures in 32-bit ANSI C compilation.
New in OptiPNG 0.7.5 (Mar 25, 2014)
- Upgraded libpng to version 1.6.10-optipng.
- Upgraded zlib to version 1.2.8-optipng.
- Fixed various build issues with libpng-1.5 and libpng-1.6. (Thanks in part to Oliver Schneider for the contribution.)
- Allowed the handling of huge image files (> millions of pixels per row or column) to be independent of the libpng version.
- Fixed a build issue with Clang.
- Added various enhancements to the configure script.
New in OptiPNG 0.7.4 (Oct 22, 2012)
- Fixed the previous fix, which failed to fix the option -fix.
New in OptiPNG 0.7.3 (Oct 22, 2012)
- Fixed a use-after-free vulnerability in the palette reduction code.
- This vulnerability was accidentally introduced in version 0.7.
New in OptiPNG 0.7.2 (Aug 25, 2012)
- Upgraded libpng to version 1.4.12.
- Upgraded zlib to version 1.2.7-optipng.
- Fixed the display of huge (4GB+) file/IDAT sizes on 32-bit platforms.
- Issued a proper error message if the output IDAT can't fit in 2GB.
- Acknowledged this limitation in the user manual.
- Thanks to John Sauter for the report.)
- Fixed the output file cleanup that should occur after a write error.
- Added the option -debug and various undocumented debug features.
- Moved the PNG reduction module (opngreduc) to a separate sub-project.
New in OptiPNG 0.7.1 (Mar 20, 2012)
- Fixed a regression in the reduction of palette-encoded grayscale images. This regression was introduced in version 0.7.
New in OptiPNG 0.6.5 (Jan 25, 2011)
- Upgraded libpng to version 1.4.5-optipng [private]
- Upgraded zlib to version 1.2.5-optipng [private]
- Fixed the I/O states (in libpng 1.4.5); they caused incorrect file reads in some rare cases.
- Fixed processing of PNG files with chunks of size 0.
- Fixed a display error in the TIFF import.
- Improved checking of the arguments of -f, -zc, -zm and -zs.
- Removed quirks from the rangeset option argument syntax.
- Fixed a build issue under the system-supplied libpng-1.4.
- Resolved forward-compatibility issues regarding libpng-1.5; however, the system-supplied libpng-1.5 is not yet supported.
- Added various enhancements to the configure+make build system.
New in OptiPNG 0.6.4 (Oct 22, 2010)
- Upgraded libpng to version 1.4.1-optipng [private]
- Upgraded zlib to version 1.2.4-optipng [private]
- Added the option -nx.
- Clarified the behavior of -nz and the relation between -nz and -o0.
- Added a filesystem check (resolving normalized paths, symlinks, etc.) to better detect when the output overwrites the input.
- Enabled automatic wildcard expansion (i.e. globbing) on Win64.
- Fixed a Unicode build issue on Windows.
New in OptiPNG 0.6.3 (Oct 22, 2010)
- Upgraded libpng to version 1.2.36-optipng [private]
- Fixed a use-after-free error in the GIF reader.
- Flushed the output log to display the current trial in real time.
- This only worked on Windows in the previous version.
- Fixed an error in reporting unrecognized file formats.
- Removed the requirement to "fix" TIFF files that contain unrecognized metadata.
- Simplified the option abbreviation rules. Option names can now be abbreviated to their shortest unique prefix, as in X11 application.
New in OptiPNG 0.6.2 (Oct 22, 2010)
- Upgraded libpng to version 1.2.33-optipng [private]
- Put back a speed optimization, accidentally removed in version 0.6, allowing singleton trials (-o1) to be bypassed in certain conditions.
- Fixed an array overflow in the BMP reader.
- Fixed the loss of private chunks under the -snip option.
- Produced a more concise on-screen output in the non-verbose mode.)
- Added a programming interface to the optimization engine, in order to facilitate the development of PNG-optimizing GUI apps and plugins.
New in OptiPNG 0.6.1 (Oct 22, 2010)
- Upgraded cexcept to version 2.0.1.
- Added a configure script, to be used instead of unix-secure.mak.
- Fixed a build issue that occured when using libpng from the system.
- Fixed processing when image reduction yields an output larger than the original.
- Fixed behavior of -preserve.
- Removed displaying of partial progress when abandoning IDATs under the -v option. The percentages displayed were not very accurate.
New in OptiPNG 0.6 (Oct 22, 2010)
- Upgraded libpng to version 1.2.29-optipng [private]
- Implemented grayscale(alpha)-to-palette reductions.
- Improved conversion of bKGD info during RGB-to-palette reductions.
- Fixed conversion of bKGD and tRNS during 16-to-8-bit reductions.
- Added support for compressed BMP (incl. PNG-compressed BMP, you bet!)
- Improved the speed of reading raw PNM files.
- Recognized PNG digital signatures (dSIG) and disabled optimization in their presence, to preserve their integrity.
- Allowed the user to enforce the optimization of dSIG'ed files.
- Recognized APNG animation files and disabled reductions to preserve their integrity.
- Added the -snip option, to allow the user to "snip" one image out of a multi-image file, such as animated GIF, multi-page TIFF, or APNG.
- Improved recovery of PNG files with incomplete IDAT.
- Fixed a crash triggered by the use of -log on some platforms.
- Fixed behavior of -out and -dir when the input is already optimized.
- Provided more detailed image information at the start of processing.
- Provided a more detailed summary at the end of processing, under the presence of the -v option and/or the occurence of exceptional events.
New in OptiPNG 0.5.5 (Aug 24, 2007)
- Upgraded libpng to version 1.2.15-optipng [private]
- Used a previously-missed RGB-to-palette reduction opportunity for images containing 256 distinct colors. (Thanks to Joachim Kluge for the report.)
- Fixed conversion of bKGD info during rgb-to-palette reductions. (Thanks to Matthew Fearnley for the report.)
- Fixed pre-computation of iterations. (Thanks to Matthew Fearnley for the report.)
- Eliminated a false alarm when processing RGB images with tRNS in Unix-secure mode. (Thanks to Till Mass for the report, and thanks to Nelson A. de Oliveira for the fix.)
- Fixed behavior of -out and -dir when changing interlacing. (Thanks to Martin Packman for the report.)
- Fixed behavior of "-dir [DRIVE]:" on Windows.