2010-01-06 04:31:25 +00:00
|
|
|
Upstream patch for tiff2ps core dump noted in bug #460322. (Note that
|
|
|
|
the tiffcmp crash mentioned there is really a different bug.)
|
|
|
|
Now also incorporating Adam Goode's patch for bug #552360. See
|
|
|
|
http://bugzilla.maptools.org/show_bug.cgi?id=1936
|
2009-12-17 00:57:50 +00:00
|
|
|
|
|
|
|
|
2010-01-06 04:31:25 +00:00
|
|
|
diff -Naur tiff-3.9.2.orig/libtiff/tif_dir.c tiff-3.9.2/libtiff/tif_dir.c
|
|
|
|
--- tiff-3.9.2.orig/libtiff/tif_dir.c 2008-12-31 19:10:43.000000000 -0500
|
|
|
|
+++ tiff-3.9.2/libtiff/tif_dir.c 2010-01-05 19:59:12.000000000 -0500
|
|
|
|
@@ -1100,6 +1100,13 @@
|
|
|
|
*/
|
|
|
|
tif->tif_flags &= ~TIFF_ISTILED;
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Clear other directory-specific fields.
|
|
|
|
+ */
|
|
|
|
+ tif->tif_tilesize = 0;
|
|
|
|
+ tif->tif_scanlinesize = 0;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
return (1);
|
|
|
|
}
|
|
|
|
|
2009-12-17 00:57:50 +00:00
|
|
|
diff -Naur tiff-3.9.2.orig/libtiff/tif_jpeg.c tiff-3.9.2/libtiff/tif_jpeg.c
|
|
|
|
--- tiff-3.9.2.orig/libtiff/tif_jpeg.c 2009-08-30 12:21:46.000000000 -0400
|
2010-01-06 04:31:25 +00:00
|
|
|
+++ tiff-3.9.2/libtiff/tif_jpeg.c 2010-01-05 19:59:12.000000000 -0500
|
2009-12-17 00:57:50 +00:00
|
|
|
@@ -1613,7 +1613,11 @@
|
|
|
|
* Must recalculate cached tile size in case sampling state changed.
|
|
|
|
* Should we really be doing this now if image size isn't set?
|
|
|
|
*/
|
|
|
|
- tif->tif_tilesize = isTiled(tif) ? TIFFTileSize(tif) : (tsize_t) -1;
|
|
|
|
+ if( tif->tif_tilesize > 0 )
|
|
|
|
+ tif->tif_tilesize = isTiled(tif) ? TIFFTileSize(tif) : (tsize_t) -1;
|
|
|
|
+
|
|
|
|
+ if(tif->tif_scanlinesize > 0 )
|
|
|
|
+ tif->tif_scanlinesize = TIFFScanlineSize(tif);
|
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
|
|
|
@@ -1741,13 +1745,21 @@
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
- {
|
|
|
|
+ {
|
|
|
|
if( !TIFFFillStrip( tif, 0 ) )
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
TIFFSetField( tif, TIFFTAG_YCBCRSUBSAMPLING,
|
|
|
|
(uint16) sp->h_sampling, (uint16) sp->v_sampling );
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ ** We want to clear the loaded strip so the application has time
|
|
|
|
+ ** to set JPEGCOLORMODE or other behavior modifiers. This essentially
|
|
|
|
+ ** undoes the JPEGPreDecode triggers by TIFFFileStrip(). (#1936)
|
|
|
|
+ */
|
|
|
|
+ tif->tif_curstrip = -1;
|
|
|
|
+
|
|
|
|
#endif /* CHECK_JPEG_YCBCR_SUBSAMPLING */
|
|
|
|
}
|
|
|
|
|