xref: /libtiff-4.0.7/html/v3.9.0.html (revision d4dd6ccc)
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