+++ /dev/null
-diff -urN tiff-3.7.2.orig/libtiff/tif_dirread.c tiff-3.7.2/libtiff/tif_dirread.c
---- tiff-3.7.2.orig/libtiff/tif_dirread.c 2005-05-16 09:55:17.000000000 +0000
-+++ tiff-3.7.2/libtiff/tif_dirread.c 2005-05-16 09:56:23.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $Id$ */
-+/* $Id$ */
-
- /*
- * Copyright (c) 1988-1997 Sam Leffler
-@@ -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
-