0% found this document useful (0 votes)
13 views3 pages

v4 5 0 RST

The document outlines the significant changes in TIFF version 4.5.0 compared to the previous version 4.4.0, including major codebase reformatting, updates to documentation formats, and enhancements in software configuration. Key improvements include new functionalities for memory allocation and error handling, as well as numerous bug fixes across library and tool functionalities. Additionally, there are API/ABI breaks and updates to the handling of TIFF directories and tags.

Uploaded by

arvoruskie
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views3 pages

v4 5 0 RST

The document outlines the significant changes in TIFF version 4.5.0 compared to the previous version 4.4.0, including major codebase reformatting, updates to documentation formats, and enhancements in software configuration. Key improvements include new functionalities for memory allocation and error handling, as well as numerous bug fixes across library and tool functionalities. Additionally, there are API/ABI breaks and updates to the handling of TIFF directories and tags.

Uploaded by

arvoruskie
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

Changes in TIFF v4.5.

0
======================

.. table:: References
:widths: auto

====================== ==========================================
Current Version v4.5.0 (:tag:`v4.5.0`)
Previous Version :doc:`v4.4.0 <v4.4.0>`
Master Download Site `<https://download.osgeo.org/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 :file:`ChangeLog` file
included in the release package and by the Git commit history:

Major changes
-------------

* Whole code base reformatting of .c/.h files using new .clang-format format
* Documentation changed from static HTML and man pages to Restructured Text
(rst). HTML and man pages are now build artifacts.

Software configuration changes


------------------------------

* SONAME version bumped to 6 due to changes in symbol versioning.


* autoconf/cmake: detect (not yet released) libjpeg-turbo 2.2 to take into
its capability of handling both 8-bit JPEG and 12-bit JPEG in a single build.
* autoconf/cmake: detect sphinx-build to build HTML and man pages
* CMakeLists.txt: fix warning with -Wdev
* CMake: correctly set default value of 'lzma' option when liblzma is detected
(:issue:`482`)
* CMake: Moved linking of CMath::CMath into CMath_LIBRARY check.
* Fix CMake build to be compatible with FetchContent.
* cmake: Correct duplicate definition of _CRT_SECURE_NO_WARNINGS (:issue:`443`)
* cmake: Fixes for Visual Studio 2022.
* Adds Requires.private generation so that pkg-config can correctly find
the dependencies of libtiff.
* Fix dependency on libm on Android
* cmake: libtiffxx is static on win32
* Fix build in tif_lzw.c
* CMake: Add options for disabling tools, tests, contrib and docs.

Library changes
---------------

New/improved functionalities:

* Addition of an open option concept with the new functions


:c:func:`TIFFOpenExt`, :c:func:`TIFFOpenWExt`, :c:func:`TIFFFdOpenExt`,
:c:func:`TIFFClientOpenExt`, :c:func:`TIFFOpenOptionsAlloc`,
:c:func:`TIFFOpenOptionsFree`
* Leveraging above mentioned open option concept, addition of a new capability
to limit the size of a single dynamic memory allocation done
by the library with :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc`
* Leveraging above mentioned open option concept, addition of a new capability
to specify per-TIFF handle re-entrant error and warning callbacks
with :c:func:`TIFFOpenOptionsSetErrorHandlerExtR` and
:c:func:`TIFFOpenOptionsSetWarningHandlerExtR`
* Related to IFD-Loop detection refactoring, the number of IFDs that libtiff
can browse through has been extended from 65535 to 1048576. This value is
a build-time setting that can be configured with CMake's TIFF_MAX_DIR_COUNT
variable or autoconf's --with-max-dir-count option.

API/ABI breaks:

* tdir_t type updated to uint32_t. This type is now used for the return value of
:c:func:`TIFFCurrentDirectory` and :c:func:`TIFFNumberOfDirectories`, and
as the argument of :c:func:`TIFFSetDirectory` and :c:func:`TIFFUnlinkDirectory`

Bug fixes:

* TIFFWriteRawStrip(): restore capabilities to append data in the current strip


(:issue:`489`)
* _TIFFReadEncodedTileAndAllocBuffer(): avoid excessive memory allocation on
broken files (:issue:`479`)
* TIFFReadRGBATileExt(): fix (unsigned) integer overflow on strips/tiles > 2 GB
(oss-fuzz #53137)
* Replace sprintf calls with snprintf to fix warnings on macOS 13 SDK
* Added warning messages for FIELD_IGNORE tags for writing and for
TIFF_SETGET_UNDEFINED for reading added. (:issue:`438`)
* tif_dirinfo.c: fix TIFFTAG_CLIPPATH tag declaration (:issue:`439`)
* tif_dirinfo.c: fix TIFFTAG_COMPRESSION and _BITSPERSAMPLE tag declaration
(:issue:`364`)
* Revised handling of TIFFTAG_INKNAMES and related TIFFTAG_NUMBEROFINKS value
(:issue:`149`, :issue:`150`, :issue:`152`, :issue:`168`, :issue:`250`,
:issue:`269`,:issue:`398`, CVE-2022-3599, :issue:`456`)
* TIFFAdvanceDirectory(): fix unsigned-integer-overflow in mapped case
(oss-fuzz #52309)
* Improved/fixes IFD-Loop Handling (:issue:`455`).
* Update getimage to support large raster images.
* Presetting of default tag values extended (e.g. PlanarConfig). (:issue:`449`)
* Deal with RichTIFFIPTC tag written with LONG type (:issue:`225`)
* TIFFSetValue(): Writing IFD8 & LONG8 tags to ClassicTIFF corrected
(:issue:`442`)
* tif_jpeg.c: allow to pass -DEXPECTED_JPEG_LIB_VERSION=number to do optional
compile-time version check
* TIFFReadFromUserBuffer(): fix clearing of TIFF_CODERSETUP flag that could
cause issues with reading JPEG compressed files
* _TIFFCheckFieldIsValidForCodec(): return FALSE when passed a codec-specific
tag and the codec is not configured (:issue:`433`, :issue:`486`,
CVE-2022-34526)
* Add basic 16 bit cielab support.
* WEBP codec: avoid temporary buffer and memcpy() on whole tile/strip decoding
* tif_predict.c: make horAcc8() work with icc (ICC) 2021.6.0 20220226 -O2

Tools changes
-------------

New/improved functionality:

* :program:`tiffinfo`: Updated to parse through SubIFDs and show their tags.


Bug fixes:

* :program:`tiffcrop`: add check if (bps != 1) in writeSingleSection()


(:issue:`169`)
* :program:`tiffcrop`: Fix too many 'mode' options on command line
(:issue:`470` and :issue:`450`)
* :program:`tiffcrop`: Fix memory allocation to require a larger buffer
(:issue:`271`, :issue:`381`, :issue:`386`, :issue:`388`, :issue:`389`,
:issue:`435`, CVE-2022-3570, CVE-2022-3598)
* :program:`tiffcrop`: disable incompatibility of -Z, -X, -Y, -z options with
any PAGE_MODE_x option (:issue:`411`, CVE-2022-3627, :issue:`413`,
CVE-2022-3597, :issue:`426`, CVE-2022-3626)
* :program:`tiffcrop`: -S option mutually exclusive (:issue:`349`,
:issue:`414`, :issue:`422`, :issue:`423`, :issue:`424`)
* :program:`tiffcrop`: fix floating-point exception (:issue:`415`,
:issue:`427`, :issue:`428`, CVE-2022-2056, CVE-2022-2057, CVE-2022-2058)
* :program:`tiff2pdf`: Don't try to seek into stdout (:issue:`441`)
* :program:`tiffinfo`: update curdir from uint16_t to tdir_t for more than 64k
IFD handling.

Contributed software changes


----------------------------

None

You might also like