* libtiff/tif_dirread.c: when compiled with DEFER_STRILE_LOAD,
fix regression, introduced on 2014-12-23, when reading a one-strip file without a StripByteCounts tag. GDAL #6490
This commit is contained in:
parent
c7ff695d1b
commit
958d9b5a8d
@ -1,3 +1,9 @@
|
|||||||
|
2016-04-27 Even Rouault <even.rouault at spatialys.com>
|
||||||
|
|
||||||
|
* libtiff/tif_dirread.c: when compiled with DEFER_STRILE_LOAD,
|
||||||
|
fix regression, introduced on 2014-12-23, when reading a one-strip
|
||||||
|
file without a StripByteCounts tag. GDAL #6490
|
||||||
|
|
||||||
2016-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
|
2016-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
|
||||||
|
|
||||||
* html/bugs.html: Replace Andrey Kiselev with Bob Friesenhahn for
|
* html/bugs.html: Replace Andrey Kiselev with Bob Friesenhahn for
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: tif_dirread.c,v 1.200 2016-01-03 10:01:25 erouault Exp $ */
|
/* $Id: tif_dirread.c,v 1.201 2016-04-27 11:38:00 erouault Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988-1997 Sam Leffler
|
* Copyright (c) 1988-1997 Sam Leffler
|
||||||
@ -166,6 +166,8 @@ static int TIFFFetchSubjectDistance(TIFF*, TIFFDirEntry*);
|
|||||||
static void ChopUpSingleUncompressedStrip(TIFF*);
|
static void ChopUpSingleUncompressedStrip(TIFF*);
|
||||||
static uint64 TIFFReadUInt64(const uint8 *value);
|
static uint64 TIFFReadUInt64(const uint8 *value);
|
||||||
|
|
||||||
|
static int _TIFFFillStrilesInternal( TIFF *tif, int loadStripByteCount );
|
||||||
|
|
||||||
typedef union _UInt64Aligned_t
|
typedef union _UInt64Aligned_t
|
||||||
{
|
{
|
||||||
double d;
|
double d;
|
||||||
@ -4281,7 +4283,8 @@ EstimateStripByteCounts(TIFF* tif, TIFFDirEntry* dir, uint16 dircount)
|
|||||||
TIFFDirectory *td = &tif->tif_dir;
|
TIFFDirectory *td = &tif->tif_dir;
|
||||||
uint32 strip;
|
uint32 strip;
|
||||||
|
|
||||||
if( !_TIFFFillStriles( tif ) )
|
/* Do not try to load stripbytecount as we will compute it */
|
||||||
|
if( !_TIFFFillStrilesInternal( tif, 0 ) )
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (td->td_stripbytecount)
|
if (td->td_stripbytecount)
|
||||||
@ -5568,6 +5571,11 @@ ChopUpSingleUncompressedStrip(TIFF* tif)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int _TIFFFillStriles( TIFF *tif )
|
int _TIFFFillStriles( TIFF *tif )
|
||||||
|
{
|
||||||
|
return _TIFFFillStrilesInternal( tif, 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
static int _TIFFFillStrilesInternal( TIFF *tif, int loadStripByteCount )
|
||||||
{
|
{
|
||||||
#if defined(DEFER_STRILE_LOAD)
|
#if defined(DEFER_STRILE_LOAD)
|
||||||
register TIFFDirectory *td = &tif->tif_dir;
|
register TIFFDirectory *td = &tif->tif_dir;
|
||||||
@ -5585,7 +5593,8 @@ int _TIFFFillStriles( TIFF *tif )
|
|||||||
return_value = 0;
|
return_value = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TIFFFetchStripThing(tif,&(td->td_stripbytecount_entry),
|
if (loadStripByteCount &&
|
||||||
|
!TIFFFetchStripThing(tif,&(td->td_stripbytecount_entry),
|
||||||
td->td_nstrips,&td->td_stripbytecount))
|
td->td_nstrips,&td->td_stripbytecount))
|
||||||
{
|
{
|
||||||
return_value = 0;
|
return_value = 0;
|
||||||
@ -5610,6 +5619,7 @@ int _TIFFFillStriles( TIFF *tif )
|
|||||||
return return_value;
|
return return_value;
|
||||||
#else /* !defined(DEFER_STRILE_LOAD) */
|
#else /* !defined(DEFER_STRILE_LOAD) */
|
||||||
(void) tif;
|
(void) tif;
|
||||||
|
(void) loadStripByteCount;
|
||||||
return 1;
|
return 1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user