diff --git a/.cvsignore b/.cvsignore index 2375075..bd63421 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,3 @@ tiff-v3.6.1.tar.gz tiff-3.7.1.tar.gz +tiff-3.7.2.tar.gz diff --git a/libtiff-3.7.2-persample.patch b/libtiff-3.7.2-persample.patch new file mode 100644 index 0000000..41f7d06 --- /dev/null +++ b/libtiff-3.7.2-persample.patch @@ -0,0 +1,194 @@ +--- tiff-3.7.2/libtiff/tif_dirread.c.persample 2005-03-05 04:06:00.000000000 -0500 ++++ tiff-3.7.2/libtiff/tif_dirread.c 2005-06-29 11:54:31.536319000 -0400 +@@ -1303,33 +1303,37 @@ + static int + TIFFFetchPerSampleShorts(TIFF* tif, TIFFDirEntry* dir, uint16* pl) + { +- uint16 samples = tif->tif_dir.td_samplesperpixel; +- int status = 0; ++ uint16 samples = tif->tif_dir.td_samplesperpixel; ++ int status = 0; + +- if (CheckDirCount(tif, dir, (uint32) samples)) { +- uint16 buf[10]; +- uint16* v = buf; +- +- if (samples > NITEMS(buf)) +- v = (uint16*) CheckMalloc(tif, samples, sizeof(uint16), +- "to fetch per-sample values"); +- if (v && TIFFFetchShortArray(tif, dir, v)) { +- uint16 i; +- for (i = 1; i < samples; i++) +- if (v[i] != v[0]) { +- TIFFError(tif->tif_name, +- "Cannot handle different per-sample values for field \"%s\"", +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); +- goto bad; +- } +- *pl = v[0]; +- status = 1; +- } +- bad: +- if (v && v != buf) +- _TIFFfree(v); +- } +- return (status); ++ if (CheckDirCount(tif, dir, (uint32) samples)) { ++ uint16 buf[10]; ++ uint16* v = buf; ++ ++ if (dir->tdir_count > NITEMS(buf)) ++ v = (uint16*) CheckMalloc(tif, dir->tdir_count, sizeof(uint16), ++ "to fetch per-sample values"); ++ if (v && TIFFFetchShortArray(tif, dir, v)) { ++ uint16 i; ++ int check_count = dir->tdir_count; ++ if( samples < check_count ) ++ check_count = samples; ++ ++ for (i = 1; i < check_count; i++) ++ if (v[i] != v[0]) { ++ TIFFError(tif->tif_name, ++ "Cannot handle different per-sample values for field \"%s\"", ++ _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); ++ goto bad; ++ } ++ *pl = v[0]; ++ status = 1; ++ } ++ bad: ++ if (v && v != buf) ++ _TIFFfree(v); ++ } ++ return (status); + } + + /* +@@ -1340,33 +1344,37 @@ + static int + TIFFFetchPerSampleLongs(TIFF* tif, TIFFDirEntry* dir, uint32* pl) + { +- uint16 samples = tif->tif_dir.td_samplesperpixel; +- int status = 0; ++ uint16 samples = tif->tif_dir.td_samplesperpixel; ++ int status = 0; + +- if (CheckDirCount(tif, dir, (uint32) samples)) { +- uint32 buf[10]; +- uint32* v = buf; +- +- if (samples > NITEMS(buf)) +- v = (uint32*) CheckMalloc(tif, samples, sizeof(uint32), +- "to fetch per-sample values"); +- if (v && TIFFFetchLongArray(tif, dir, v)) { +- uint16 i; +- for (i = 1; i < samples; i++) +- if (v[i] != v[0]) { +- TIFFError(tif->tif_name, +- "Cannot handle different per-sample values for field \"%s\"", +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); +- goto bad; +- } +- *pl = v[0]; +- status = 1; +- } +- bad: +- if (v && v != buf) +- _TIFFfree(v); +- } +- return (status); ++ if (CheckDirCount(tif, dir, (uint32) samples)) { ++ uint32 buf[10]; ++ uint32* v = buf; ++ ++ if (dir->tdir_count > NITEMS(buf)) ++ v = (uint32*) CheckMalloc(tif, dir->tdir_count, sizeof(uint32), ++ "to fetch per-sample values"); ++ if (v && TIFFFetchLongArray(tif, dir, v)) { ++ uint16 i; ++ int check_count = dir->tdir_count; ++ ++ if( samples < check_count ) ++ check_count = samples; ++ for (i = 1; i < check_count; i++) ++ if (v[i] != v[0]) { ++ TIFFError(tif->tif_name, ++ "Cannot handle different per-sample values for field \"%s\"", ++ _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); ++ goto bad; ++ } ++ *pl = v[0]; ++ status = 1; ++ } ++ bad: ++ if (v && v != buf) ++ _TIFFfree(v); ++ } ++ return (status); + } + + /* +@@ -1377,33 +1385,37 @@ + static int + TIFFFetchPerSampleAnys(TIFF* tif, TIFFDirEntry* dir, double* pl) + { +- uint16 samples = tif->tif_dir.td_samplesperpixel; +- int status = 0; ++ uint16 samples = tif->tif_dir.td_samplesperpixel; ++ int status = 0; + +- if (CheckDirCount(tif, dir, (uint32) samples)) { +- double buf[10]; +- double* v = buf; +- +- if (samples > NITEMS(buf)) +- v = (double*) CheckMalloc(tif, samples, sizeof (double), +- "to fetch per-sample values"); +- if (v && TIFFFetchAnyArray(tif, dir, v)) { +- uint16 i; +- for (i = 1; i < samples; i++) +- if (v[i] != v[0]) { +- TIFFError(tif->tif_name, +- "Cannot handle different per-sample values for field \"%s\"", +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); +- goto bad; +- } +- *pl = v[0]; +- status = 1; +- } +- bad: +- if (v && v != buf) +- _TIFFfree(v); +- } +- return (status); ++ if (CheckDirCount(tif, dir, (uint32) samples)) { ++ double buf[10]; ++ double* v = buf; ++ ++ if (dir->tdir_count > NITEMS(buf)) ++ v = (double*) CheckMalloc(tif, dir->tdir_count, sizeof (double), ++ "to fetch per-sample values"); ++ if (v && TIFFFetchAnyArray(tif, dir, v)) { ++ uint16 i; ++ int check_count = dir->tdir_count; ++ if( samples < check_count ) ++ check_count = samples; ++ ++ for (i = 1; i < check_count; i++) ++ if (v[i] != v[0]) { ++ TIFFError(tif->tif_name, ++ "Cannot handle different per-sample values for field \"%s\"", ++ _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); ++ goto bad; ++ } ++ *pl = v[0]; ++ status = 1; ++ } ++ bad: ++ if (v && v != buf) ++ _TIFFfree(v); ++ } ++ return (status); + } + #undef NITEMS + diff --git a/libtiff.spec b/libtiff.spec index 8d18583..27c5cb4 100644 --- a/libtiff.spec +++ b/libtiff.spec @@ -1,17 +1,13 @@ Summary: A library of functions for manipulating TIFF format image files. Name: libtiff -Version: 3.7.1 -Release: 6 +Version: 3.7.2 +Release: 1 License: distributable Group: System Environment/Libraries Source0: http://www.libtiff.org/tiff-%{version}.tar.gz Patch0: libtiff-v3.6.1-64bit.patch -Patch1: libtiff-3.5.7-dump.patch -# http://bugzilla.remotesensing.org/show_bug.cgi?id=718, fixed in 3.7.2 -Patch2: libtiff-3.7.1-extrasamples.patch -Patch3: libtiff-3.7.1-mktemp.patch # http://bugzilla.remotesensing.org/show_bug.cgi?id=843, fixed in 3.7.3 -Patch4: libtiff-3.7.1-persample.patch +Patch1: libtiff-3.7.2-persample.patch URL: http://www.libtiff.org/ BuildRoot: %{_tmppath}/%{name}-root BuildRequires: zlib-devel zlib libjpeg-devel libjpeg @@ -45,10 +41,7 @@ install the libtiff package. %setup -q -n tiff-%{version} %patch0 -p1 -b .64bit -%patch1 -p1 -b .dump -%patch2 -p1 -b .extrasamples -%patch3 -p1 -b .mktemp -%patch4 -p1 -b .persample +%patch1 -p1 -b .persample %build @@ -87,6 +80,10 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man3/* %changelog +* Wed Jun 29 2005 Matthias Clasen - 3.7.2-1 +- Update to 3.7.2 +- Drop upstreamed patches + * Fri May 6 2005 Matthias Clasen - 3.7.1-6 - Fix a stack overflow diff --git a/sources b/sources index 33cf77a..a67566c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -37d222df12eb23691614cd40b7b1f215 tiff-3.7.1.tar.gz +9d7123bd0dbde2a3853fb758346adb78 tiff-3.7.2.tar.gz