aboutsummaryrefslogtreecommitdiffstats
path: root/main/tiff/tiff-jpegfix.patch
blob: ca57191dff7b1976e07f2629547e896a971a0cb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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: