182973070SBob Friesenhahn<HTML> 282973070SBob Friesenhahn<HEAD> 382973070SBob Friesenhahn<TITLE> 482973070SBob Friesenhahn Changes in TIFF v3.9.0 582973070SBob Friesenhahn</TITLE> 682973070SBob Friesenhahn</HEAD> 782973070SBob Friesenhahn 882973070SBob Friesenhahn<BODY BGCOLOR=white> 982973070SBob Friesenhahn<FONT FACE="Helvetica, Arial, Sans"> 1082973070SBob Friesenhahn<FONT FACE="Helvetica, Arial, Sans"> 1182973070SBob Friesenhahn 1282973070SBob Friesenhahn<BASEFONT SIZE=4> 1382973070SBob Friesenhahn<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B> 1482973070SBob Friesenhahn<BASEFONT SIZE=3> 1582973070SBob Friesenhahn 1682973070SBob Friesenhahn<UL> 1782973070SBob Friesenhahn<HR SIZE=4 WIDTH=65% ALIGN=left> 1882973070SBob Friesenhahn<B>Current Version</B>: v3.9.0<BR> 1982973070SBob Friesenhahn<B>Previous Version</B>: <A HREF=v3.9.0beta.html>v3.9.0beta</a><BR> 20*d4dd6cccSBob Friesenhahn<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff"> 21*d4dd6cccSBob Friesenhahndownload.osgeo.org</a>, directory pub/libtiff</A><BR> 22*d4dd6cccSBob Friesenhahn<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/"> 23*d4dd6cccSBob Friesenhahnhttp://www.simplesystems.org/libtiff/</a> 2482973070SBob Friesenhahn<HR SIZE=4 WIDTH=65% ALIGN=left> 2582973070SBob Friesenhahn</UL> 2682973070SBob Friesenhahn 2782973070SBob Friesenhahn<P> 2882973070SBob FriesenhahnThis document describes the changes made to the software between the 2982973070SBob Friesenhahn<I>previous</I> and <I>current</I> versions (see above). If you don't 3082973070SBob Friesenhahnfind something listed here, then it was not done in this timeframe, or 3182973070SBob Friesenhahnit was not considered important enough to be mentioned. The following 3282973070SBob Friesenhahninformation is located here: 3382973070SBob Friesenhahn<UL> 3482973070SBob Friesenhahn<LI><A HREF="#hightlights">Major Changes</A> 3582973070SBob Friesenhahn<LI><A HREF="#configure">Changes in the software configuration</A> 3682973070SBob Friesenhahn<LI><A HREF="#libtiff">Changes in libtiff</A> 3782973070SBob Friesenhahn<LI><A HREF="#tools">Changes in the tools</A> 3882973070SBob Friesenhahn<LI><A HREF="#contrib">Changes in the contrib area</A> 3982973070SBob Friesenhahn</UL> 4082973070SBob Friesenhahn<p> 4182973070SBob Friesenhahn<P><HR WIDTH=65% ALIGN=left> 4282973070SBob Friesenhahn 4382973070SBob Friesenhahn<!---------------------------------------------------------------------------> 4482973070SBob Friesenhahn 4582973070SBob Friesenhahn<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A> 4682973070SBob Friesenhahn 4782973070SBob Friesenhahn<UL> 4882973070SBob Friesenhahn <li> All of the major changes since 3.8.0 were incorporated in 4982973070SBob Friesenhahn the v3.9.0beta release. This is a stable release from a 5082973070SBob Friesenhahn stable maintenance branch which incorporates many bug and 5182973070SBob Friesenhahn security fixes needed by existing users of 3.X.X series 5282973070SBob Friesenhahn libraries. Any future major changes will be in the 4.0.X 5382973070SBob Friesenhahn series of releases. 5482973070SBob Friesenhahn 5582973070SBob Friesenhahn</UL> 5682973070SBob Friesenhahn 5782973070SBob Friesenhahn 5882973070SBob Friesenhahn<P><HR WIDTH=65% ALIGN=left> 5982973070SBob Friesenhahn<!---------------------------------------------------------------------------> 6082973070SBob Friesenhahn 6182973070SBob Friesenhahn<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A> 6282973070SBob Friesenhahn 6382973070SBob Friesenhahn<UL> 6482973070SBob Friesenhahn 6582973070SBob Friesenhahn <li> Updated autotools: Autoconf 2.64, Automake 1.11, libtool 6682973070SBob Friesenhahn 2.2.6. 6782973070SBob Friesenhahn 6882973070SBob Friesenhahn <li> Enabled support for Automake silent build rules 6982973070SBob Friesenhahn (--enable-silent-rules or 'make V=0') 7082973070SBob Friesenhahn 7182973070SBob Friesenhahn <li> Enabled support for Automake colorized tests. 7282973070SBob Friesenhahn 7382973070SBob Friesenhahn <li> Added detection of a 64-bit integer type so that bundled 7482973070SBob Friesenhahn utilities (like tiffcrop) can use it when necessary. Note 7582973070SBob Friesenhahn that this version of libtiff does not require a 64-bit integer 7682973070SBob Friesenhahn type but libtiff 4.0 does. 7782973070SBob Friesenhahn 7882973070SBob Friesenhahn</UL> 7982973070SBob Friesenhahn 8082973070SBob Friesenhahn<P><HR WIDTH=65% ALIGN=left> 8182973070SBob Friesenhahn 8282973070SBob Friesenhahn<!---------------------------------------------------------------------------> 8382973070SBob Friesenhahn 8482973070SBob Friesenhahn<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A> 8582973070SBob Friesenhahn 8682973070SBob Friesenhahn<UL> 8782973070SBob Friesenhahn <li> libtiff/{Makefile.am, Makefile.v}: Do not distribute 8882973070SBob Friesenhahn tiffconf.h, remove tif_config.h/tiffconf.h during cleaning. As 8982973070SBob Friesenhahn per bug <a 9082973070SBob Friesenhahn href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1573">http://bugzilla.remotesensing.org/show_bug.cgi?id=1573</a> 9182973070SBob Friesenhahn 9282973070SBob Friesenhahn <li> tif_dirinfo.c: _TIFFMergeFields() now only merges in 9382973070SBob Friesenhahn field definitions that are missing. Existing definitions are 9482973070SBob Friesenhahn silently ignored. (Bug #1585) 9582973070SBob Friesenhahn 9682973070SBob Friesenhahn <li> tif_write.c: Rip out the fancy logic in 9782973070SBob Friesenhahn TIFFAppendToStrip() for establishing if an existing tile can 9882973070SBob Friesenhahn be rewritten to the same location by comparing the current 9982973070SBob Friesenhahn size to all the other blocks in the same directory. This is 10082973070SBob Friesenhahn dangerous in many situations and can easily corrupt a file. 10182973070SBob Friesenhahn (observed in esoteric GDAL situation that's hard to document). 10282973070SBob Friesenhahn This change involves leaving the stripbytecount[] values 10382973070SBob Friesenhahn unaltered till TIFFAppendToStrip(). Now we only write a block 10482973070SBob Friesenhahn back to the same location it used to be at if the new data is 10582973070SBob Friesenhahn the same size or smaller - otherwise we move it to the end of 10682973070SBob Friesenhahn file. 10782973070SBob Friesenhahn 10882973070SBob Friesenhahn <li> tif_dirwrite.c: Try to avoid writing out a full 10982973070SBob Friesenhahn readbuffer of tile data when writing the directory just 11082973070SBob Friesenhahn because we have BEENWRITING at some point in the past. This 11182973070SBob Friesenhahn was causing odd junk to be written out in a tile of data when 11282973070SBob Friesenhahn a single tile had an interleaving of reading and writing with 11382973070SBob Friesenhahn reading last. (highlighted by gdal 11482973070SBob Friesenhahn autotest/gcore/tif_write.py test 7. 11582973070SBob Friesenhahn 11682973070SBob Friesenhahn <li> tif_predict.c: use working buffer in PredictorEncodeTile 11782973070SBob Friesenhahn to avoid modifying callers buffer. <a 11882973070SBob Friesenhahn href="http://trac.osgeo.org/gdal/ticket/1965">http://trac.osgeo.org/gdal/ticket/1965</a> 11982973070SBob Friesenhahn 12082973070SBob Friesenhahn <li> tif_predict.c/h, tif_lzw.c, tif_zip.c: Improvements so 12182973070SBob Friesenhahn that predictor based encoding and decoding works in read-write 12282973070SBob Friesenhahn update mode properly. <a 12382973070SBob Friesenhahn href="http://trac.osgeo.org/gdal/ticket/1948">http://trac.osgeo.org/gdal/ticket/1948</a> 12482973070SBob Friesenhahn 12582973070SBob Friesenhahn <li> configure.com, libtiff/tif_vms.c: Better OpenVMS 12682973070SBob Friesenhahn support. Patches from Alexey Chupahin. 12782973070SBob Friesenhahn 12882973070SBob Friesenhahn <li> tif_fax3.c: fix leak of FAXCS state (per bug 1603). 12982973070SBob Friesenhahn 13082973070SBob Friesenhahn <li> tif_fax3.c: Make find0span() and find1span() non-inline 13182973070SBob Friesenhahn to make MSVC 6.0 compiler happy. 13282973070SBob Friesenhahn 13382973070SBob Friesenhahn <li> tif_codec.c: Avoid NULL pointer dereferencing for exotic 13482973070SBob Friesenhahn compression codec codes. 13582973070SBob Friesenhahn 13682973070SBob Friesenhahn <li> tif_dirread.c: zero tif->tif_dir after freeing the 13782973070SBob Friesenhahn directory in TIFFReadCustomDirectory(). I don't exactly 13882973070SBob Friesenhahn remember why this was important. 13982973070SBob Friesenhahn 14082973070SBob Friesenhahn <li> tif_dirwrite.c: Fix potential memory leak writing large 14182973070SBob Friesenhahn double tags. 14282973070SBob Friesenhahn 14382973070SBob Friesenhahn <li> tif_dirread.c: Fix unchecked malloc result. 14482973070SBob Friesenhahn 14582973070SBob Friesenhahn <li> libtiff/tif_lzw.c: Properly zero out the codetable. As 14682973070SBob Friesenhahn per bug <a 14782973070SBob Friesenhahn href="http://bugzilla.maptools.org/show_bug.cgi?id=1929">http://bugzilla.maptools.org/show_bug.cgi?id=1929</a> 14882973070SBob Friesenhahn 14982973070SBob Friesenhahn <li> libtiff/tif_lzw.c: Properly zero out the string 15082973070SBob Friesenhahn table. Fixes CVE-2008-2327 security issue. 15182973070SBob Friesenhahn 15282973070SBob Friesenhahn <li> libtiff/tif_jbig.c: Support the JBIG-KIT 2.0 15382973070SBob Friesenhahn (compatibility with the older versions retained). 15482973070SBob Friesenhahn 15582973070SBob Friesenhahn <li> libtiff/tif_getimage.c,tiffio.h: removed all use of 15682973070SBob Friesenhahn UaToAa and Bitmap16to8 arrays in TIFFRGBAImage structure to 15782973070SBob Friesenhahn restore ABI compatability. These were just an attempt to 15882973070SBob Friesenhahn speed up processing with precalculated tables. <a 15982973070SBob Friesenhahn href="http://bugzilla.maptools.org/show_bug.cgi?id=1979">http://bugzilla.maptools.org/show_bug.cgi?id=1979</a> 16082973070SBob Friesenhahn 16182973070SBob Friesenhahn <li> libtiff/tif_codec.c: Avoid printing c->name if it does not exist. 16282973070SBob Friesenhahn 16382973070SBob Friesenhahn <li> libtiff/tif_getimage.c, tiffio.h: More ABI corrections. 16482973070SBob Friesenhahn Removed SubsamplingHor/Ver from TIFFRGBAImage structure. <a 16582973070SBob Friesenhahn href="http://bugzilla.maptools.org/show_bug.cgi?id=1980">http://bugzilla.maptools.org/show_bug.cgi?id=1980</a> 16682973070SBob Friesenhahn 16782973070SBob Friesenhahn <li> libtiff/tif_jpeg.c: Avoid errors if the application 16882973070SBob Friesenhahn writes a full strip for the last partial strip in a jpeg 16982973070SBob Friesenhahn compressed file. <a 17082973070SBob Friesenhahn href="http://bugzilla.maptools.org/show_bug.cgi?id=1981">http://bugzilla.maptools.org/show_bug.cgi?id=1981</a> 17182973070SBob Friesenhahn 17282973070SBob Friesenhahn <li> libtiff/tiffio.h: GCC will now validate format 17382973070SBob Friesenhahn specifications for TIFFError(), TIFFErrorExt(), TIFFWarning(), 17482973070SBob Friesenhahn and TIFFWarningExt() in order to reveal bugs. Cleaned up 17582973070SBob Friesenhahn resulting warnings throughout for 32 bit build only. 17682973070SBob Friesenhahn 17782973070SBob Friesenhahn <li> libtiff/tiffiop.h: Add private type declarations for 17882973070SBob Friesenhahn int64, and uint64 so that bundled utilities (like tiffcrop) 17982973070SBob Friesenhahn can use it when necessary. 18082973070SBob Friesenhahn 18182973070SBob Friesenhahn <li> libtiff/tif_predict.c: Add support for 32bit integer 18282973070SBob Friesenhahn horz. predictors. 18382973070SBob Friesenhahn <a href="http://bugzilla.maptools.org/show_bug.cgi?id=1911">http://bugzilla.maptools.org/show_bug.cgi?id=1911</a> 18482973070SBob Friesenhahn 18582973070SBob Friesenhahn <li> libtiff/tif_luv.c: Fix handling of tiled logluv images. 18682973070SBob Friesenhahn <a 18782973070SBob Friesenhahn href="http://bugzilla.maptools.org/show_bug.cgi?id=2005">http://bugzilla.maptools.org/show_bug.cgi?id=2005</a> 18882973070SBob Friesenhahn 18982973070SBob Friesenhahn <li> libtiff/tif_write.c: do not override the planar 19082973070SBob Friesenhahn configuration to be contig for one sample files if planar 19182973070SBob Friesenhahn configuration is already set. <a 19282973070SBob Friesenhahn href="http://bugzilla.maptools.org/show_bug.cgi?id=2057">http://bugzilla.maptools.org/show_bug.cgi?id=2057</a> 19382973070SBob Friesenhahn 19482973070SBob Friesenhahn <li> libtiff/tif_lzw.c: Fix buffer underflow bug. <a 19582973070SBob Friesenhahn href="http://bugzilla.maptools.org/show_bug.cgi?id=2065">http://bugzilla.maptools.org/show_bug.cgi?id=2065</a> 19682973070SBob Friesenhahn 19782973070SBob Friesenhahn <li> libtiff/tif_luv.c: correct return codes from encoderow to 19882973070SBob Friesenhahn be 1 on success instead of zero. <a 19982973070SBob Friesenhahn href="http://bugzilla.maptools.org/show_bug.cgi?id=2069">http://bugzilla.maptools.org/show_bug.cgi?id=2069</a> 20082973070SBob Friesenhahn 20182973070SBob Friesenhahn <li> libtiff/tif_print.c (TIFFPrintDirectory): Applied patch 20282973070SBob Friesenhahn for "tag error may cause segfault in tif_print.c." <a 20382973070SBob Friesenhahn href="http://bugzilla.maptools.org/show_bug.cgi?id=1896">http://bugzilla.maptools.org/show_bug.cgi?id=1896</a> 20482973070SBob Friesenhahn 20582973070SBob Friesenhahn</UL> 20682973070SBob Friesenhahn 20782973070SBob Friesenhahn<P><HR WIDTH=65% ALIGN=left> 20882973070SBob Friesenhahn 20982973070SBob Friesenhahn<!--------------------------------------------------------------------------> 21082973070SBob Friesenhahn 21182973070SBob Friesenhahn<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A> 21282973070SBob Friesenhahn 21382973070SBob Friesenhahn<UL> 21482973070SBob Friesenhahn <li> tools/tiff2pdf.c: Fixed setting of alpha value per report 21582973070SBob Friesenhahn on list. 21682973070SBob Friesenhahn 21782973070SBob Friesenhahn <li> tools/tiffsplit.c: Get rid of unsafe strcpy()/strcat() 21882973070SBob Friesenhahn calls when doing the filename/path construction. 21982973070SBob Friesenhahn 22082973070SBob Friesenhahn <li> tools/tiff2pdf.c: More appropriate format string in 22182973070SBob Friesenhahn t2p_write_pdf_string(); avoid signed/unsigned mismatch. 22282973070SBob Friesenhahn 22382973070SBob Friesenhahn <li> tools/tiffsplit.c: Use dynamically allocated array 22482973070SBob Friesenhahn instead of static when constructing output file names. 22582973070SBob Friesenhahn 22682973070SBob Friesenhahn <li> tools/tiffcrop.c, man/tiffcrop.1: Incorporated 22782973070SBob Friesenhahn significant functionality update from Richard Nolde. 22882973070SBob Friesenhahn 22982973070SBob Friesenhahn <li> tools/tiff2ps.c: Incorporated significant functionality 23082973070SBob Friesenhahn update from Richard Nolde. In particular, support for 23182973070SBob Friesenhahn rotating the image by 90, 180, 270, and 'auto' has been added. 23282973070SBob Friesenhahn 23382973070SBob Friesenhahn <li> tools/tiff2ps.c: Remove spurious message printed to 23482973070SBob Friesenhahn stderr. 23582973070SBob Friesenhahn 23682973070SBob Friesenhahn <li> tools/tiffsplit.c: fix sampleformat to be shortv instead 23782973070SBob Friesenhahn of longv. 23882973070SBob Friesenhahn 23982973070SBob Friesenhahn <li> tools/{rgb2ycbcr.c, tiff2rgba.c}: Applied patch for 24082973070SBob Friesenhahn CVE-2009-2347 libtiff: integer overflows in various 24182973070SBob Friesenhahn inter-color space conversion tools. <a 24282973070SBob Friesenhahn href="http://bugzilla.maptools.org/show_bug.cgi?id=2079">http://bugzilla.maptools.org/show_bug.cgi?id=2079</a> 24382973070SBob Friesenhahn 24482973070SBob Friesenhahn</UL> 24582973070SBob Friesenhahn 24682973070SBob Friesenhahn<P><HR WIDTH=65% ALIGN=left> 24782973070SBob Friesenhahn 24882973070SBob Friesenhahn<!---------------------------------------------------------------------------> 24982973070SBob Friesenhahn 25082973070SBob Friesenhahn<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A> 25182973070SBob Friesenhahn 25282973070SBob Friesenhahn<UL> 25382973070SBob Friesenhahn 25482973070SBob Friesenhahn <li> None 25582973070SBob Friesenhahn 25682973070SBob Friesenhahn</UL> 25782973070SBob Friesenhahn 258*d4dd6cccSBob FriesenhahnLast updated $Date: 2016-09-25 20:05:46 $. 25982973070SBob Friesenhahn 26082973070SBob Friesenhahn</BODY> 26182973070SBob Friesenhahn</HTML> 262