Update to 4.0.10

PR:		233146
Reported by:	Roger Leigh
This commit is contained in:
Antoine Brodin 2018-11-17 20:44:01 +00:00
parent c413ab11c1
commit 768048f9f1
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=485196
7 changed files with 15 additions and 163 deletions

View File

@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= tiff
PORTVERSION= 4.0.9
PORTREVISION= 1
PORTVERSION= 4.0.10
CATEGORIES= graphics
MASTER_SITES= http://download.osgeo.org/libtiff/
@ -23,7 +22,10 @@ USE_LDCONFIG= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --with-jpeg-include-dir=${LOCALBASE}/include \
--with-jpeg-lib-dir=${LOCALBASE}/lib \
--without-x
--without-x \
--disable-webp \
--disable-zstd
INSTALL_TARGET= install-strip
TEST_TARGET= check

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1511092936
SHA256 (tiff-4.0.9.tar.gz) = 6e7bdeec2c310734e734d19aae3a71ebe37a4d842e0e23dbb1b8921c0026cfcd
SIZE (tiff-4.0.9.tar.gz) = 2305681
TIMESTAMP = 1541970522
SHA256 (tiff-4.0.10.tar.gz) = 2c52d11ccaf767457db0c46795d9c7d1a8d8f76f68b0b800a3dfe45786b996e4
SIZE (tiff-4.0.10.tar.gz) = 2402867

View File

@ -1,34 +0,0 @@
From c6f41df7b581402dfba3c19a1e3df4454c551a01 Mon Sep 17 00:00:00 2001
From: Even Rouault <even.rouault@spatialys.com>
Date: Sun, 31 Dec 2017 15:09:41 +0100
Subject: [PATCH] libtiff/tif_print.c: TIFFPrintDirectory(): fix null pointer dereference on corrupted file. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2770
---
libtiff/tif_print.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libtiff/tif_print.c b/libtiff/tif_print.c
index 9959d35..8deceb2 100644
--- libtiff/tif_print.c
+++ libtiff/tif_print.c
@@ -667,13 +667,13 @@ TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags)
#if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
fprintf(fd, " %3lu: [%8I64u, %8I64u]\n",
(unsigned long) s,
- (unsigned __int64) td->td_stripoffset[s],
- (unsigned __int64) td->td_stripbytecount[s]);
+ td->td_stripoffset ? (unsigned __int64) td->td_stripoffset[s] : 0,
+ td->td_stripbytecount ? (unsigned __int64) td->td_stripbytecount[s] : 0);
#else
fprintf(fd, " %3lu: [%8llu, %8llu]\n",
(unsigned long) s,
- (unsigned long long) td->td_stripoffset[s],
- (unsigned long long) td->td_stripbytecount[s]);
+ td->td_stripoffset ? (unsigned long long) td->td_stripoffset[s] : 0,
+ td->td_stripbytecount ? (unsigned long long) td->td_stripbytecount[s] : 0);
#endif
}
}
--
libgit2 0.26.0

View File

@ -1,117 +0,0 @@
diff --git a/libtiff/tif_dir.c b/libtiff/tif_dir.c
index 2ccaf44..cbf2b69 100644
--- libtiff/tif_dir.c
+++ libtiff/tif_dir.c
@@ -1067,6 +1067,9 @@ _TIFFVGetField(TIFF* tif, uint32 tag, va_list ap)
if (td->td_samplesperpixel - td->td_extrasamples > 1) {
*va_arg(ap, uint16**) = td->td_transferfunction[1];
*va_arg(ap, uint16**) = td->td_transferfunction[2];
+ } else {
+ *va_arg(ap, uint16**) = NULL;
+ *va_arg(ap, uint16**) = NULL;
}
break;
case TIFFTAG_REFERENCEBLACKWHITE:
diff --git a/tools/tiff2pdf.c b/tools/tiff2pdf.c
index d1a9b09..484776c 100644
--- tools/tiff2pdf.c
+++ tools/tiff2pdf.c
@@ -237,7 +237,7 @@ typedef struct {
float tiff_whitechromaticities[2];
float tiff_primarychromaticities[6];
float tiff_referenceblackwhite[2];
- float* tiff_transferfunction[3];
+ uint16* tiff_transferfunction[3];
int pdf_image_interpolate; /* 0 (default) : do not interpolate,
1 : interpolate */
uint16 tiff_transferfunctioncount;
@@ -1047,6 +1047,8 @@ void t2p_read_tiff_init(T2P* t2p, TIFF* input){
uint16 pagen=0;
uint16 paged=0;
uint16 xuint16=0;
+ uint16 tiff_transferfunctioncount=0;
+ uint16* tiff_transferfunction[3];
directorycount=TIFFNumberOfDirectories(input);
t2p->tiff_pages = (T2P_PAGE*) _TIFFmalloc(TIFFSafeMultiply(tmsize_t,directorycount,sizeof(T2P_PAGE)));
@@ -1147,26 +1149,48 @@ void t2p_read_tiff_init(T2P* t2p, TIFF* input){
}
#endif
if (TIFFGetField(input, TIFFTAG_TRANSFERFUNCTION,
- &(t2p->tiff_transferfunction[0]),
- &(t2p->tiff_transferfunction[1]),
- &(t2p->tiff_transferfunction[2]))) {
- if((t2p->tiff_transferfunction[1] != (float*) NULL) &&
- (t2p->tiff_transferfunction[2] != (float*) NULL) &&
- (t2p->tiff_transferfunction[1] !=
- t2p->tiff_transferfunction[0])) {
- t2p->tiff_transferfunctioncount = 3;
- t2p->tiff_pages[i].page_extra += 4;
- t2p->pdf_xrefcount += 4;
- } else {
- t2p->tiff_transferfunctioncount = 1;
- t2p->tiff_pages[i].page_extra += 2;
- t2p->pdf_xrefcount += 2;
- }
- if(t2p->pdf_minorversion < 2)
- t2p->pdf_minorversion = 2;
+ &(tiff_transferfunction[0]),
+ &(tiff_transferfunction[1]),
+ &(tiff_transferfunction[2]))) {
+
+ if((tiff_transferfunction[1] != (uint16*) NULL) &&
+ (tiff_transferfunction[2] != (uint16*) NULL)
+ ) {
+ tiff_transferfunctioncount=3;
+ } else {
+ tiff_transferfunctioncount=1;
+ }
} else {
- t2p->tiff_transferfunctioncount=0;
+ tiff_transferfunctioncount=0;
}
+
+ if (i > 0){
+ if (tiff_transferfunctioncount != t2p->tiff_transferfunctioncount){
+ TIFFError(
+ TIFF2PDF_MODULE,
+ "Different transfer function on page %d",
+ i);
+ t2p->t2p_error = T2P_ERR_ERROR;
+ return;
+ }
+ }
+
+ t2p->tiff_transferfunctioncount = tiff_transferfunctioncount;
+ t2p->tiff_transferfunction[0] = tiff_transferfunction[0];
+ t2p->tiff_transferfunction[1] = tiff_transferfunction[1];
+ t2p->tiff_transferfunction[2] = tiff_transferfunction[2];
+ if(tiff_transferfunctioncount == 3){
+ t2p->tiff_pages[i].page_extra += 4;
+ t2p->pdf_xrefcount += 4;
+ if(t2p->pdf_minorversion < 2)
+ t2p->pdf_minorversion = 2;
+ } else if (tiff_transferfunctioncount == 1){
+ t2p->tiff_pages[i].page_extra += 2;
+ t2p->pdf_xrefcount += 2;
+ if(t2p->pdf_minorversion < 2)
+ t2p->pdf_minorversion = 2;
+ }
+
if( TIFFGetField(
input,
TIFFTAG_ICCPROFILE,
@@ -1827,10 +1851,9 @@ void t2p_read_tiff_data(T2P* t2p, TIFF* input){
&(t2p->tiff_transferfunction[0]),
&(t2p->tiff_transferfunction[1]),
&(t2p->tiff_transferfunction[2]))) {
- if((t2p->tiff_transferfunction[1] != (float*) NULL) &&
- (t2p->tiff_transferfunction[2] != (float*) NULL) &&
- (t2p->tiff_transferfunction[1] !=
- t2p->tiff_transferfunction[0])) {
+ if((t2p->tiff_transferfunction[1] != (uint16*) NULL) &&
+ (t2p->tiff_transferfunction[2] != (uint16*) NULL)
+ ) {
t2p->tiff_transferfunctioncount=3;
} else {
t2p->tiff_transferfunctioncount=1;

View File

@ -1,6 +1,6 @@
--- Makefile.in.orig 2017-05-21 18:49:35 UTC
--- Makefile.in.orig 2018-11-10 15:24:13 UTC
+++ Makefile.in
@@ -495,19 +495,6 @@ distclean-libtool:
@@ -492,19 +492,6 @@ distclean-libtool:
-rm -f libtool config.lt
install-dist_docDATA: $(dist_doc_DATA)
@$(NORMAL_INSTALL)

View File

@ -1,6 +1,6 @@
--- man/tiffcrop.1.orig 2016-09-25 20:05:52 UTC
--- man/tiffcrop.1.orig 2017-12-02 15:21:49 UTC
+++ man/tiffcrop.1
@@ -496,7 +496,6 @@ the portrait or landscape option. The pa
@@ -495,7 +495,6 @@ the portrait or landscape option. The pa
the image. It breaks each original image into a series of smaller images
that will fit on the target paper size at the specified resolution.
.fi

View File

@ -24,11 +24,11 @@ include/tiffvers.h
lib/libtiff.a
lib/libtiff.so
lib/libtiff.so.5
lib/libtiff.so.5.3.0
lib/libtiff.so.5.4.0
lib/libtiffxx.a
lib/libtiffxx.so
lib/libtiffxx.so.5
lib/libtiffxx.so.5.3.0
lib/libtiffxx.so.5.4.0
libdata/pkgconfig/libtiff-4.pc
man/man1/fax2ps.1.gz
man/man1/fax2tiff.1.gz
@ -280,6 +280,7 @@ man/man3/libtiff.3tiff.gz
%%PORTDOCS%%%%DOCSDIR%%/v3.9.2.html
%%PORTDOCS%%%%DOCSDIR%%/v4.0.0.html
%%PORTDOCS%%%%DOCSDIR%%/v4.0.1.html
%%PORTDOCS%%%%DOCSDIR%%/v4.0.10.html
%%PORTDOCS%%%%DOCSDIR%%/v4.0.2.html
%%PORTDOCS%%%%DOCSDIR%%/v4.0.3.html
%%PORTDOCS%%%%DOCSDIR%%/v4.0.4.html