aboutsummaryrefslogtreecommitdiffstats
path: root/main/tiff/tiff-jpegfix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/tiff/tiff-jpegfix.patch')
-rw-r--r--main/tiff/tiff-jpegfix.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/main/tiff/tiff-jpegfix.patch b/main/tiff/tiff-jpegfix.patch
new file mode 100644
index 0000000000..ca57191dff
--- /dev/null
+++ b/main/tiff/tiff-jpegfix.patch
@@ -0,0 +1,31 @@
+diff -Nru 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-12-22 12:45:49.969811264 -0800
++++ tiff-3.9.2/libtiff/tif_jpeg.c 2009-12-22 12:47:04.433491064 -0800
+@@ -2014,7 +2014,14 @@
+ if( tif->tif_diroff == 0 )
+ {
+ #define SIZE_OF_JPEGTABLES 2000
++/*
++The following line assumes incorrectly that all JPEG-in-TIFF files will have
++a JPEGTABLES tag generated and causes null-filled JPEGTABLES tags to be written
++when the JPEG data is placed with TIFFWriteRawStrip. The field bit should be
++set, anyway, later when actual JPEGTABLES header is generated, so removing it
++here hopefully is harmless.
+ TIFFSetFieldBit(tif, FIELD_JPEGTABLES);
++*/
+ sp->jpegtables_length = SIZE_OF_JPEGTABLES;
+ sp->jpegtables = (void *) _TIFFmalloc(sp->jpegtables_length);
+ _TIFFmemset(sp->jpegtables, 0, SIZE_OF_JPEGTABLES);
+diff -Nru tiff-3.9.2.orig/tools/tiff2pdf.c tiff-3.9.2/tools/tiff2pdf.c
+--- tiff-3.9.2.orig/tools/tiff2pdf.c 2009-12-22 12:45:49.873825856 -0800
++++ tiff-3.9.2/tools/tiff2pdf.c 2009-12-22 12:48:16.558526392 -0800
+@@ -3320,6 +3320,9 @@
+ while(i<(*striplength)){
+ switch( strip[i] ){
+ case 0xd8:
++ /* SOI - start of image */
++ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), 2);
++ *bufferoffset+=2;
+ i+=2;
+ break;
+ case 0xc0: