2008.05.31 15:30 "Re: [Tiff] Re: [gdal-dev] Problem with libTiff on Solaris 10", by Even Rouault
Dan,
Your fix is not the right one. But I recognize that my previous suggestion could lead into error.
In fact, tdir_count field is a uint64 in libtiff 4.0.
So the correct fix is:
uint32 nTemp = (uint32)o->tdir_count;
_Tiffmemcpy(n, &nTemp, 4);
Even
-----------------------------------------------------------------------------------
[Tiff] Re: [gdal-dev] Problem with libTiff on Solaris 10
De :
Dan Greve <grevedan@hotmail.com>
À :
Bob Friesenhahn <bfriesen@simple.dallas.tx.us>, Even Rouault <even.rouault@mines-paris.org>
CC :
gdal-dev@lists.osgeo.org, tiff@lists.osgeo.org, Andy Cave <andy.cave@hamillroad.com>, mailing list <tiff@lists.maptools.org>
Date :
Aujourd'hui 16:49:15
Sure enough, the pointer n is not null, and throws a sigsegv fault. Aftern changing from
*(uint32*)n=(uint32)o->tdir_count; TO
_TIFFmemcpy(n, &o->tdir_count, 4)
The execution passes this point, but where as *(uint32*)n should be 1, it is 0. This causes errors later in the GDALOpen call on the tiff dataset, which fails with error "TiffFetchNormalTag:incorrect count for "SamplesPerPixel". debugging continues....
-- Dan Greve
-- Software Engineering
-- Northrop Grumman Corp.