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