TIFF CHANGE INFORMATION

Current Version: v4.4.0
Previous Version: v4.3.0
Master Download Site: download.osgeo.org, directory pub/libtiff
Master HTTP Site #1: http://www.simplesystems.org/libtiff/
Master HTTP Site #2: https://libtiff.gitlab.io/libtiff/
Master HTTP Site #3: http://libtiff.maptools.org/

This document provides a summary of significant changes made to the software between the previous and current versions (see above). A fully-detailed change summary is provided by the ChangeLog file included in the release package and by the Git commit history:

- Major Changes
- Changes in the software configuration
- Changes in libtiff
- Changes in the tools
- Changes in the contrib area

MAJOR CHANGES:

None

CHANGES IN THE SOFTWARE CONFIGURATION:

- Handle absolute paths in pkg-config file (#333)
- Correct fix for the pkgconf file relative paths.
- cmake: allow running the tests with a read-only source directory.
- cmake: Fix STRIPCHOP_DEFAULT value in CMake builds.
- build: Fix static library imports in mingw related to LERC
- Fix version in libtiff-4.pc.in, and CMake build: Add requirements to pc file
- cmake: Fix build with CMake 3.10.
- cmake: Export tiff targets.
- Make LERC_SUPPORT conditional on ZLIB_SUPPORT

CHANGES IN LIBTIFF:

New/improved functionalities:

- TIFFIsBigTiff() function added.
- Functions TIFFFieldSetGetSize() and TIFFieldSetGetCountSize() added.
- LZWDecode(): major speed improvements (~30% faster)
- Predictor 2 (horizontal differenciation): support 64-bit
- Support libjpeg 9d

Bug fixes:

- Remove incorrect assert (#329)
- avoid hang in TIFFRewriteDirectory() if a classic file > 4 GB is attempted to be created
- tif_jbig.c: fix crash when reading a file with multiple IFD in memory-mapped mode and when bit reversal is needed (fixes #385)
- TIFFFetchNormalTag(): avoid calling memcpy() with a null source pointer and size of zero (fixes #383)
- TIFFWriteDirectoryTagData(): turn assertion on data length into a runtime check
- TIFFFetchStripThing(): avoid calling memcpy() with a null source pointer and size of zero (fixes #362)
- TIFFReadDirectory(): avoid calling memcpy() with a null source pointer and size of zero (fixes #362)
- TIFFYCbCrToRGBInit(): avoid Integer-overflow
- TIFFGetField(TIFFTAG_STRIPBYTECOUNTS/TIFFTAG_STRIPOFFSETS): return error if returned pointer is NULL (fixes #342)
- OJPEG: avoid assertion when using TIFFReadScanline() (fixes #337)
- TIFFReadDirectory: fix OJPEG hack (fixes #319)
- LZW codec: fix support for strips/tiles > 2 GB on Windows
- TIFFAppendToStrip(): fix rewrite-in-place logic (fixes #309)
- Fix TIFFRewriteDirectory discarding directories.
- TIFFReadCustomDirectory(): avoid crash when reading SubjectDistance tag on a non EXIF directory (#316)
- Fix Segmentation fault printing GPS directory if Altitude tag is present
- tif_jpeg.c: do not emit progressive scans with mozjpeg. (#266)
- _TIFFRewriteField(): fix when writing a IFD with a single tile that is a sparse one, on big endian hosts
- Fix all remaining uses of legacy Deflate compression id and warn on use.

CHANGES IN THE TOOLS:

Bug fixes:

- tiffcrop: Fix issue #330 and some more from 320 to 349.
- tiffcrop: fix issue #395: generation of strange section images.
- tiffcrop: fix issue #380 and #382 heap buffer overflow in extractImageSection
- tiffcrop: fix FPE (#393)
- tiffcrop: buffsize check formula in loadImage() amended (fixes #273,#275)
- tiffcrop.c: Fix issue #352 heap-buffer-overflow by correcting uint32_t underflow.
- tiff2pdf: handle 8-bit palette colormap.
- tiffcp: avoid buffer overflow in "mode" string (fixes #400)
- tiffcp: Fix incomprehensible setting of orientation tag (fixes #29)
- tiffcp: do not try to fetch compressor-specific tags when not appropriate (fixes #396)
- tiffcp: fix heap buffer overflow (#278)
- tiff2ps: In limitMalloc() check for negative size (fixes #284)
- tiffinfo: add a -M switch to define the maximum heap allocation, and default it to 256 MiB (fixes #287, #290)
- tiffinfo: limit more memory allocations using -M switch (fixes #288)
- tiffset: fix global-buffer-overflow for ASCII tags where count is required (fixes #355)
- raw2tiff: check that band number if not zero to avoid floating point exception(fixes #338)
- tiffinfo/tiffdump: improve output for GDAL tags.

CHANGES IN THE CONTRIB AREA:

None