1<HTML> 2<HEAD> 3<TITLE> 4 Changes in TIFF v3.9.0 5</TITLE> 6</HEAD> 7 8<BODY BGCOLOR=white> 9<FONT FACE="Helvetica, Arial, Sans"> 10<FONT FACE="Helvetica, Arial, Sans"> 11 12<BASEFONT SIZE=4> 13<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B> 14<BASEFONT SIZE=3> 15 16<UL> 17<HR SIZE=4 WIDTH=65% ALIGN=left> 18<B>Current Version</B>: v3.9.0<BR> 19<B>Previous Version</B>: <A HREF=v3.9.0beta.html>v3.9.0beta</a><BR> 20<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff"> 21download.osgeo.org</a>, directory pub/libtiff</A><BR> 22<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/"> 23http://www.simplesystems.org/libtiff/</a> 24<HR SIZE=4 WIDTH=65% ALIGN=left> 25</UL> 26 27<P> 28This document describes the changes made to the software between the 29<I>previous</I> and <I>current</I> versions (see above). If you don't 30find something listed here, then it was not done in this timeframe, or 31it was not considered important enough to be mentioned. The following 32information is located here: 33<UL> 34<LI><A HREF="#hightlights">Major Changes</A> 35<LI><A HREF="#configure">Changes in the software configuration</A> 36<LI><A HREF="#libtiff">Changes in libtiff</A> 37<LI><A HREF="#tools">Changes in the tools</A> 38<LI><A HREF="#contrib">Changes in the contrib area</A> 39</UL> 40<p> 41<P><HR WIDTH=65% ALIGN=left> 42 43<!---------------------------------------------------------------------------> 44 45<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A> 46 47<UL> 48 <li> All of the major changes since 3.8.0 were incorporated in 49 the v3.9.0beta release. This is a stable release from a 50 stable maintenance branch which incorporates many bug and 51 security fixes needed by existing users of 3.X.X series 52 libraries. Any future major changes will be in the 4.0.X 53 series of releases. 54 55</UL> 56 57 58<P><HR WIDTH=65% ALIGN=left> 59<!---------------------------------------------------------------------------> 60 61<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A> 62 63<UL> 64 65 <li> Updated autotools: Autoconf 2.64, Automake 1.11, libtool 66 2.2.6. 67 68 <li> Enabled support for Automake silent build rules 69 (--enable-silent-rules or 'make V=0') 70 71 <li> Enabled support for Automake colorized tests. 72 73 <li> Added detection of a 64-bit integer type so that bundled 74 utilities (like tiffcrop) can use it when necessary. Note 75 that this version of libtiff does not require a 64-bit integer 76 type but libtiff 4.0 does. 77 78</UL> 79 80<P><HR WIDTH=65% ALIGN=left> 81 82<!---------------------------------------------------------------------------> 83 84<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A> 85 86<UL> 87 <li> libtiff/{Makefile.am, Makefile.v}: Do not distribute 88 tiffconf.h, remove tif_config.h/tiffconf.h during cleaning. As 89 per bug <a 90 href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1573">http://bugzilla.remotesensing.org/show_bug.cgi?id=1573</a> 91 92 <li> tif_dirinfo.c: _TIFFMergeFields() now only merges in 93 field definitions that are missing. Existing definitions are 94 silently ignored. (Bug #1585) 95 96 <li> tif_write.c: Rip out the fancy logic in 97 TIFFAppendToStrip() for establishing if an existing tile can 98 be rewritten to the same location by comparing the current 99 size to all the other blocks in the same directory. This is 100 dangerous in many situations and can easily corrupt a file. 101 (observed in esoteric GDAL situation that's hard to document). 102 This change involves leaving the stripbytecount[] values 103 unaltered till TIFFAppendToStrip(). Now we only write a block 104 back to the same location it used to be at if the new data is 105 the same size or smaller - otherwise we move it to the end of 106 file. 107 108 <li> tif_dirwrite.c: Try to avoid writing out a full 109 readbuffer of tile data when writing the directory just 110 because we have BEENWRITING at some point in the past. This 111 was causing odd junk to be written out in a tile of data when 112 a single tile had an interleaving of reading and writing with 113 reading last. (highlighted by gdal 114 autotest/gcore/tif_write.py test 7. 115 116 <li> tif_predict.c: use working buffer in PredictorEncodeTile 117 to avoid modifying callers buffer. <a 118 href="http://trac.osgeo.org/gdal/ticket/1965">http://trac.osgeo.org/gdal/ticket/1965</a> 119 120 <li> tif_predict.c/h, tif_lzw.c, tif_zip.c: Improvements so 121 that predictor based encoding and decoding works in read-write 122 update mode properly. <a 123 href="http://trac.osgeo.org/gdal/ticket/1948">http://trac.osgeo.org/gdal/ticket/1948</a> 124 125 <li> configure.com, libtiff/tif_vms.c: Better OpenVMS 126 support. Patches from Alexey Chupahin. 127 128 <li> tif_fax3.c: fix leak of FAXCS state (per bug 1603). 129 130 <li> tif_fax3.c: Make find0span() and find1span() non-inline 131 to make MSVC 6.0 compiler happy. 132 133 <li> tif_codec.c: Avoid NULL pointer dereferencing for exotic 134 compression codec codes. 135 136 <li> tif_dirread.c: zero tif->tif_dir after freeing the 137 directory in TIFFReadCustomDirectory(). I don't exactly 138 remember why this was important. 139 140 <li> tif_dirwrite.c: Fix potential memory leak writing large 141 double tags. 142 143 <li> tif_dirread.c: Fix unchecked malloc result. 144 145 <li> libtiff/tif_lzw.c: Properly zero out the codetable. As 146 per bug <a 147 href="http://bugzilla.maptools.org/show_bug.cgi?id=1929">http://bugzilla.maptools.org/show_bug.cgi?id=1929</a> 148 149 <li> libtiff/tif_lzw.c: Properly zero out the string 150 table. Fixes CVE-2008-2327 security issue. 151 152 <li> libtiff/tif_jbig.c: Support the JBIG-KIT 2.0 153 (compatibility with the older versions retained). 154 155 <li> libtiff/tif_getimage.c,tiffio.h: removed all use of 156 UaToAa and Bitmap16to8 arrays in TIFFRGBAImage structure to 157 restore ABI compatability. These were just an attempt to 158 speed up processing with precalculated tables. <a 159 href="http://bugzilla.maptools.org/show_bug.cgi?id=1979">http://bugzilla.maptools.org/show_bug.cgi?id=1979</a> 160 161 <li> libtiff/tif_codec.c: Avoid printing c->name if it does not exist. 162 163 <li> libtiff/tif_getimage.c, tiffio.h: More ABI corrections. 164 Removed SubsamplingHor/Ver from TIFFRGBAImage structure. <a 165 href="http://bugzilla.maptools.org/show_bug.cgi?id=1980">http://bugzilla.maptools.org/show_bug.cgi?id=1980</a> 166 167 <li> libtiff/tif_jpeg.c: Avoid errors if the application 168 writes a full strip for the last partial strip in a jpeg 169 compressed file. <a 170 href="http://bugzilla.maptools.org/show_bug.cgi?id=1981">http://bugzilla.maptools.org/show_bug.cgi?id=1981</a> 171 172 <li> libtiff/tiffio.h: GCC will now validate format 173 specifications for TIFFError(), TIFFErrorExt(), TIFFWarning(), 174 and TIFFWarningExt() in order to reveal bugs. Cleaned up 175 resulting warnings throughout for 32 bit build only. 176 177 <li> libtiff/tiffiop.h: Add private type declarations for 178 int64, and uint64 so that bundled utilities (like tiffcrop) 179 can use it when necessary. 180 181 <li> libtiff/tif_predict.c: Add support for 32bit integer 182 horz. predictors. 183 <a href="http://bugzilla.maptools.org/show_bug.cgi?id=1911">http://bugzilla.maptools.org/show_bug.cgi?id=1911</a> 184 185 <li> libtiff/tif_luv.c: Fix handling of tiled logluv images. 186 <a 187 href="http://bugzilla.maptools.org/show_bug.cgi?id=2005">http://bugzilla.maptools.org/show_bug.cgi?id=2005</a> 188 189 <li> libtiff/tif_write.c: do not override the planar 190 configuration to be contig for one sample files if planar 191 configuration is already set. <a 192 href="http://bugzilla.maptools.org/show_bug.cgi?id=2057">http://bugzilla.maptools.org/show_bug.cgi?id=2057</a> 193 194 <li> libtiff/tif_lzw.c: Fix buffer underflow bug. <a 195 href="http://bugzilla.maptools.org/show_bug.cgi?id=2065">http://bugzilla.maptools.org/show_bug.cgi?id=2065</a> 196 197 <li> libtiff/tif_luv.c: correct return codes from encoderow to 198 be 1 on success instead of zero. <a 199 href="http://bugzilla.maptools.org/show_bug.cgi?id=2069">http://bugzilla.maptools.org/show_bug.cgi?id=2069</a> 200 201 <li> libtiff/tif_print.c (TIFFPrintDirectory): Applied patch 202 for "tag error may cause segfault in tif_print.c." <a 203 href="http://bugzilla.maptools.org/show_bug.cgi?id=1896">http://bugzilla.maptools.org/show_bug.cgi?id=1896</a> 204 205</UL> 206 207<P><HR WIDTH=65% ALIGN=left> 208 209<!--------------------------------------------------------------------------> 210 211<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A> 212 213<UL> 214 <li> tools/tiff2pdf.c: Fixed setting of alpha value per report 215 on list. 216 217 <li> tools/tiffsplit.c: Get rid of unsafe strcpy()/strcat() 218 calls when doing the filename/path construction. 219 220 <li> tools/tiff2pdf.c: More appropriate format string in 221 t2p_write_pdf_string(); avoid signed/unsigned mismatch. 222 223 <li> tools/tiffsplit.c: Use dynamically allocated array 224 instead of static when constructing output file names. 225 226 <li> tools/tiffcrop.c, man/tiffcrop.1: Incorporated 227 significant functionality update from Richard Nolde. 228 229 <li> tools/tiff2ps.c: Incorporated significant functionality 230 update from Richard Nolde. In particular, support for 231 rotating the image by 90, 180, 270, and 'auto' has been added. 232 233 <li> tools/tiff2ps.c: Remove spurious message printed to 234 stderr. 235 236 <li> tools/tiffsplit.c: fix sampleformat to be shortv instead 237 of longv. 238 239 <li> tools/{rgb2ycbcr.c, tiff2rgba.c}: Applied patch for 240 CVE-2009-2347 libtiff: integer overflows in various 241 inter-color space conversion tools. <a 242 href="http://bugzilla.maptools.org/show_bug.cgi?id=2079">http://bugzilla.maptools.org/show_bug.cgi?id=2079</a> 243 244</UL> 245 246<P><HR WIDTH=65% ALIGN=left> 247 248<!---------------------------------------------------------------------------> 249 250<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A> 251 252<UL> 253 254 <li> None 255 256</UL> 257 258Last updated $Date: 2016-09-25 20:05:46 $. 259 260</BODY> 261</HTML> 262