<!DOCTYPE html>

<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>Changes in TIFF v4.5.1 &#8212; LibTIFF 4.7.1 documentation</title>
    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b849a4e9" />
    <link rel="stylesheet" type="text/css" href="../_static/sphinxdoc.css?v=0a676766" />
    <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=3b5d5a7b"></script>
    <script src="../_static/doctools.js?v=888ff710"></script>
    <script src="../_static/sphinx_highlight.js?v=4825356b"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Changes in TIFF v4.5.0" href="v4.5.0.html" />
    <link rel="prev" title="Changes in TIFF v4.6.0" href="v4.6.0.html" /> 
  </head><body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="v4.5.0.html" title="Changes in TIFF v4.5.0"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="v4.6.0.html" title="Changes in TIFF v4.6.0"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">LibTIFF 4.7.1 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Release history</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">Changes in TIFF v4.5.1</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <section id="changes-in-tiff-v4-5-1">
<h1>Changes in TIFF v4.5.1<a class="headerlink" href="#changes-in-tiff-v4-5-1" title="Permalink to this heading">¶</a></h1>
<table class="docutils align-default" id="id1">
<caption><span class="caption-text">References</span><a class="headerlink" href="#id1" title="Permalink to this table">¶</a></caption>
<tbody>
<tr class="row-odd"><td><p>Current Version</p></td>
<td><p>v4.5.1 (<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/tags/v4.5.1">tag v4.5.1</a>)</p></td>
</tr>
<tr class="row-even"><td><p>Previous Version</p></td>
<td><p><a class="reference internal" href="v4.5.0.html"><span class="doc">v4.5.0</span></a></p></td>
</tr>
<tr class="row-odd"><td><p>Master Download Site</p></td>
<td><p><a class="reference external" href="https://download.osgeo.org/libtiff/">https://download.osgeo.org/libtiff/</a></p></td>
</tr>
<tr class="row-even"><td><p>Master HTTP Site #1</p></td>
<td><p><a class="reference external" href="http://www.simplesystems.org/libtiff/">http://www.simplesystems.org/libtiff/</a></p></td>
</tr>
<tr class="row-odd"><td><p>Master HTTP Site #2</p></td>
<td><p><a class="reference external" href="https://libtiff.gitlab.io/libtiff/">https://libtiff.gitlab.io/libtiff/</a></p></td>
</tr>
<tr class="row-even"><td><p>Master HTTP Site #3</p></td>
<td><p><a class="reference external" href="http://libtiff.maptools.org/">http://libtiff.maptools.org/</a></p></td>
</tr>
</tbody>
</table>
<p>This document provides a summary of significant changes made to the
software between the <em>previous</em> and <em>current</em> versions (see
above). A fully-detailed change summary is provided by the <code class="file docutils literal notranslate"><span class="pre">ChangeLog</span></code> file
included in the release package and by the Git commit history:</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>This version will be the last one supporting most TIFF tools (except tiffinfo,
tiffdump, tiffcp and tiffset), whose maintenance will be discontinued, due
to the lack of contributors able to address reported security issues.
Starting with libtiff v4.6.0, their source code, at this time ,will still be
available in the source distribution, but they will no longer be built by
default, and issues related to them will no longer be accepted in the
libtiff bug tracker.</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Some CMake related changes, in particular related to the CMake config file
now installed, should be considered as a preview and may change in the next
releases based on user feedback.
See discussion in <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/merge_requests/496">https://gitlab.com/libtiff/libtiff/-/merge_requests/496</a>
and <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/merge_requests/494">https://gitlab.com/libtiff/libtiff/-/merge_requests/494</a></p>
</div>
<section id="major-changes">
<h2>Major changes<a class="headerlink" href="#major-changes" title="Permalink to this heading">¶</a></h2>
<p>None</p>
</section>
<section id="software-configuration-changes">
<h2>Software configuration changes<a class="headerlink" href="#software-configuration-changes" title="Permalink to this heading">¶</a></h2>
<ul class="simple">
<li><p>Definition of tags reformatted (clang-format off) for better
readability of tag comments in tiff.h and tif_dirinfo.c</p></li>
<li><p>Do not install libtiff-4.pc when tiff-install is reset.</p></li>
<li><p>Add versioninfo resource files for DLL and tools
compiled with Windows MSVC and MINGW.</p></li>
<li><p>Disable clang-formatting for tif_config.h.cmake.in and
tiffconf.h.cmake.in because sensitive for CMake scripts.</p></li>
<li><p>CMake: make WebP component name compatible with upstream ConfigWebP.cmake</p></li>
<li><p>CMake: make Findliblzma with upstream CMake config file</p></li>
<li><p>CMake: FindDeflate.cmake: fix several errors (<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/526">issue #526</a>).</p></li>
<li><p>CMake: FindLERC.cmake: version string return added.</p></li>
<li><p>CMake: export TiffConfig.cmake and TiffConfigVersion.cmake files</p></li>
<li><p>CMake: fix export of INTERFACE_INCLUDE_DIRECTORIES</p></li>
</ul>
</section>
<section id="library-changes">
<h2>Library changes<a class="headerlink" href="#library-changes" title="Permalink to this heading">¶</a></h2>
<p>New/improved functionalities:</p>
<ul class="simple">
<li><p>Hardcode HOST_FILLORDER to FILLORDER_LSB2MSB and make 'H' flag of
<a class="reference internal" href="../functions/TIFFOpen.html#c.TIFFOpen" title="TIFFOpen"><code class="xref c c-func docutils literal notranslate"><span class="pre">TIFFOpen()</span></code></a> to warn and an alias of FILLORDER_MSB2LSB.
<code class="file docutils literal notranslate"><span class="pre">tif_lerc.c</span></code>: use WORDS_BIGENDIAN instead of HOST_BIGENDIAN.</p></li>
<li><p>Optimize relative seeking within <a class="reference internal" href="../functions/TIFFSetDirectory.html#c.TIFFSetDirectory" title="TIFFSetDirectory"><code class="xref c c-func docutils literal notranslate"><span class="pre">TIFFSetDirectory()</span></code></a>
by using the learned list of IFD offsets.</p></li>
<li><p>Improve internal IFD offset and directory number map handling.</p></li>
<li><p>Behavior of <a class="reference internal" href="../functions/TIFFOpen.html#c.TIFFOpen" title="TIFFOpen"><code class="xref c c-func docutils literal notranslate"><span class="pre">TIFFOpen()</span></code></a>  mode &quot;r+&quot; in the Windows implementation
adjusted to that of Linux.</p></li>
</ul>
<p>API/ABI breaks:</p>
<ul class="simple">
<li><p>None</p></li>
</ul>
<p>Bug fixes:</p>
<ul class="simple">
<li><p>TIFFDirectory td_fieldsset type changed from unsigned long, which can
be 32 or 64 bits, to uint32_t (fixes <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/484">issue #484</a>).</p></li>
<li><p>tif_ojpeg.c: checking for division by zero (fixes <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/554">issue #554</a>).</p></li>
<li><p>LZWDecode(): avoid crash when trying to read again from a strip with
a missing end-of-information marker (fixes <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/548">issue #548</a>).</p></li>
<li><p>Fixed runtime error: applying zero offset to null pointer
in <code class="xref c c-func docutils literal notranslate"><span class="pre">countInkNamesString()</span></code>.</p></li>
<li><p>Fixing crash in <a class="reference internal" href="../functions/TIFFCreateDirectory.html#c.TIFFUnlinkDirectory" title="TIFFUnlinkDirectory"><code class="xref c c-func docutils literal notranslate"><span class="pre">TIFFUnlinkDirectory()</span></code></a> when called with
directory number zero (&quot;TIFFUnlinkDirectory(<strong>0</strong>)&quot;) as well as fixing
incorrect behaviour when unlinking the first directory.</p></li>
<li><p>tif_luv: check and correct for NaN data in <code class="xref c c-func docutils literal notranslate"><span class="pre">uv_encode()</span></code>
(<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/530">issue #530</a>).</p></li>
<li><p><a class="reference internal" href="../functions/TIFFClose.html#c.TIFFClose" title="TIFFClose"><code class="xref c c-func docutils literal notranslate"><span class="pre">TIFFClose()</span></code></a> avoid NULL pointer dereferencing
(<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/515">issue #515</a>).</p></li>
<li><p>tif_hash_set.c: include tif_hash_set.h after tif_config.h
to let a chance for GDAL symbol renaming trick.</p></li>
<li><p>Fax3: fix failure to decode some fax3 number_of_images
and add test for Fax3 decoding issues
(<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/513">issue #513</a>).</p></li>
<li><p><a class="reference internal" href="../functions/TIFFSetDirectory.html#c.TIFFSetDirectory" title="TIFFSetDirectory"><code class="xref c c-func docutils literal notranslate"><span class="pre">TIFFSetDirectory()</span></code></a> and <code class="xref c c-func docutils literal notranslate"><span class="pre">TIFFWriteDirectorySec()</span></code>
avoid harmless unsigned-integer-overflow
(due to gdal oss-fuzz #54311 and #54343).</p></li>
<li><p><code class="file docutils literal notranslate"><span class="pre">tif_ojpeg.c</span></code>: fix <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/554">issue #554</a> by checking for division by zero
in OJPEGWriteHeaderInfo().</p></li>
<li><p>LZWDecode(): avoid crash when trying to read again from a strip with
a missing end-of-information marker (<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/548">issue #548</a>).</p></li>
</ul>
</section>
<section id="documentation">
<h2>Documentation<a class="headerlink" href="#documentation" title="Permalink to this heading">¶</a></h2>
<ul class="simple">
<li><p>mention TIFFSetTagExtender() cannot add tags to custom directories.</p></li>
<li><p>manpage: add multi page TIFF and SubIFDs description and read / write example.</p></li>
</ul>
</section>
<section id="tools-changes">
<h2>Tools changes<a class="headerlink" href="#tools-changes" title="Permalink to this heading">¶</a></h2>
<p>New/improved functionality:</p>
<ul class="simple">
<li><p>None</p></li>
</ul>
<p>Bug fixes:</p>
<ul class="simple">
<li><p><strong class="program">tiffcrop</strong>: Consider error return of writeSelections() (fixes <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/553">issue #553</a>).</p></li>
<li><p><strong class="program">tiffcrop</strong>: fix memory leak
(<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/475">issue #475</a>).</p></li>
<li><p><strong class="program">tiffcrop</strong>: do not reuse input buffer for subsequent images
(<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/527">issue #527</a>).</p></li>
<li><p><strong class="program">tiffcrop</strong>: Amend rotateImage() not to toggle the input
(main) image width and length parameters when only cropped image
sections are rotated. Remove buffptr from region structure
because never used. Fixes
<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/492">issue #492</a>, <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/493">issue #493</a>, <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/494">issue #494</a>, <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/495">issue #495</a>,
<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/499">issue #499</a>, <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/518">issue #518</a>, <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/519">issue #519</a>.</p></li>
<li><p><strong class="program">tiffcrop</strong>: correctly update buffersize after rotateImage()
(<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/520">issue #520</a>).</p></li>
<li><p><strong class="program">tiffcrop</strong>: added check for assumption on composite images. Fixes
<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/496">issue #496</a>, <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/497">issue #497</a>, <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/498">issue #498</a>, <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/500">issue #500</a>, <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/501">issue #501</a>.</p></li>
<li><p><strong class="program">tiffmedian</strong>: avoid zero num_colors
(<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/477">issue #477</a>).</p></li>
<li><p><strong class="program">fax2ps</strong>: fix buffer overflow in qsort function pcompar
(<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/475">issue #475</a>).</p></li>
<li><p><strong class="program">tiffset</strong>: get filesize to allocate only the required memory
(<a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/241">issue #241</a>).</p></li>
<li><p><strong class="program">tiffcrop</strong>: fix <a class="reference external" href="https://gitlab.com/libtiff/libtiff/-/issues/553">issue #553</a> by considering error return of writeSelections().</p></li>
<li><p>tif_ovrcache.c: check <a class="reference internal" href="../functions/TIFFSetDirectory.html#c.TIFFSetSubDirectory" title="TIFFSetSubDirectory"><code class="xref c c-func docutils literal notranslate"><span class="pre">TIFFSetSubDirectory()</span></code></a> return value (CID 1524573).</p></li>
</ul>
</section>
<section id="contributed-software-changes">
<h2>Contributed software changes<a class="headerlink" href="#contributed-software-changes" title="Permalink to this heading">¶</a></h2>
<p>None</p>
</section>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <div>
    <h3><a href="../index.html">Table of Contents</a></h3>
    <ul>
<li><a class="reference internal" href="#">Changes in TIFF v4.5.1</a><ul>
<li><a class="reference internal" href="#major-changes">Major changes</a></li>
<li><a class="reference internal" href="#software-configuration-changes">Software configuration changes</a></li>
<li><a class="reference internal" href="#library-changes">Library changes</a></li>
<li><a class="reference internal" href="#documentation">Documentation</a></li>
<li><a class="reference internal" href="#tools-changes">Tools changes</a></li>
<li><a class="reference internal" href="#contributed-software-changes">Contributed software changes</a></li>
</ul>
</li>
</ul>

  </div>
  <div>
    <h4>Previous topic</h4>
    <p class="topless"><a href="v4.6.0.html"
                          title="previous chapter">Changes in TIFF v4.6.0</a></p>
  </div>
  <div>
    <h4>Next topic</h4>
    <p class="topless"><a href="v4.5.0.html"
                          title="next chapter">Changes in TIFF v4.5.0</a></p>
  </div>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/releases/v4.5.1.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="v4.5.0.html" title="Changes in TIFF v4.5.0"
             >next</a> |</li>
        <li class="right" >
          <a href="v4.6.0.html" title="Changes in TIFF v4.6.0"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">LibTIFF 4.7.1 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" >Release history</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">Changes in TIFF v4.5.1</a></li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
    &#169; Copyright 1988-2025, LibTIFF contributors.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.1.2.
    </div>
  </body>
</html>