<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'><div style="text-align: left;">Shawn,<br><br>Hopefully we can solve both our problems.&nbsp; It's hard for the developers to run their tests unless they have similiar hardware.&nbsp; If one of the developers want, i may be able to produce a SPARC system to run tests through.<br></div><br>-- Dan Greve<br>-- Software Engineer<br>-- Northrop Grumman Corp.<br><br><hr id="stopSpelling">&gt; Subject: RE: [gdal-dev] Problem with libTiff on Solaris 10<br>&gt; Date: Fri, 30 May 2008 12:54:44 -0400<br>&gt; From: Shawn.Gong@drdc-rddc.gc.ca<br>&gt; To: grevedan@hotmail.com; gdal-dev@lists.osgeo.org<br>&gt; <br>&gt; Dan and list,<br>&gt; <br>&gt; This error looks very similar to what I have experienced on our Sun machine, trying to build and run gdal 1.5.1.<br>&gt; Our Sun system is SPARC Solaris 9 64-bit.<br>&gt; <br>&gt; Error message when Python codes call "gtiff_driver.CreateCopy( fname, vrtds, ...)"<br>&gt; ERROR 1: /home/sgong/../working_dir/test2.tif:No space to read TIFF directory<br>&gt; ERROR 1: TIFFReadDirectory:Failed to read directory at offset 8 Bus error (core dumped)<br>&gt; <br>&gt; <br>&gt; thanks, <br>&gt; Shawn <br>&gt; <br>&gt; ________________________________________<br>&gt; From: gdal-dev-bounces@lists.osgeo.org [mailto:gdal-dev-bounces@lists.osgeo.org] On Behalf Of Dan Greve<br>&gt; Sent: Friday, May 30, 2008 11:51 AM<br>&gt; To: gdal-dev@lists.osgeo.org<br>&gt; Subject: [gdal-dev] Problem with libTiff on Solaris 10<br>&gt; <br>&gt; Greetings,<br>&gt; <br>&gt; I am using the latest stable build, gdal-1.5.1 on a SPARC Solaris 10 64-bit system.&nbsp; It is configured with the default drivers, but is using --with-jpeg=internal --with-libtiff=internal --with-geotiff=internal.&nbsp; Using the 32-bit compiler options and libraries, I can successfully build libgdal.so and the utility programs.&nbsp; However, when trying to do a gdal_translate from one simple uncompressed 3-band geotiff into another simple uncompressed 3-band geotiff, I get a "bus error" segfault.&nbsp; Also, if the output tiff already exists I get two errors. "No space to read tiff directory" and "TiffReadDirectory: failed to read directory at offset 8". A quick google revealed two similiar errors, here and here. Diving into the debugger, the problem seems to lie in the tif_dirwrite.c, starting with line 755.&nbsp; I believe it's due to _TIFFmalloc not allocating memory properly. The crash actual occurs on line 781, *(uint32*)n=(uint32)o-&gt;tdir_count;&nbsp; <br>&gt; <br>&gt; o-&gt;tdir_count is valid, but setting n to any value causes a segfault, as though TIFFmalloc did not allocate the whole requested 186 bytes. Any ideas?<br>&gt; <br>&gt; &lt;snip file=tif_dirwrite.c&gt;<br>&gt; &nbsp;&nbsp;&nbsp; dirmem=_TIFFmalloc(dirsize);<br>&gt; &nbsp;&nbsp;&nbsp; if (dirmem==NULL)<br>&gt; &nbsp;&nbsp;&nbsp; {<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; TIFFErrorExt(tif-&gt;tif_clientdata,module,"Out of memory");<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; goto bad;<br>&gt; &nbsp;&nbsp;&nbsp; }<br>&gt; &nbsp;&nbsp;&nbsp; if (!(tif-&gt;tif_flags&amp;TIFF_BIGTIFF))<br>&gt; &nbsp;&nbsp;&nbsp; {<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; uint8* n;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; TIFFDirEntry* o;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n=dirmem;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *(uint16*)n=ndir;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (tif-&gt;tif_flags&amp;TIFF_SWAB)<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; TIFFSwabShort((uint16*)n);<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n+=2;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; o=dir;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (m=0; m&lt;ndir; m++)<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *(uint16*)n=o-&gt;tdir_tag;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (tif-&gt;tif_flags&amp;TIFF_SWAB)<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; TIFFSwabShort((uint16*)n);<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n+=2;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *(uint16*)n=o-&gt;tdir_type;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (tif-&gt;tif_flags&amp;TIFF_SWAB)<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; TIFFSwabShort((uint16*)n);<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n+=2;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *(uint32*)n=(uint32)o-&gt;tdir_count;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (tif-&gt;tif_flags&amp;TIFF_SWAB)<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; TIFFSwabLong((uint32*)n);<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n+=4;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; _TIFFmemcpy(n,&amp;o-&gt;tdir_offset,4);<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n+=4;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; o++;<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *(uint32*)n = (uint32)tif-&gt;tif_nextdiroff;<br>&gt; &nbsp;&nbsp;&nbsp; }<br>&gt; &lt;/snip&gt;<br>&gt; <br>&gt; -- Dan Greve<br>&gt; -- Software Engineer<br>&gt; -- Northrop Grumman Corp.<br>&gt; <br>&gt; <br><br /><hr />Keep your kids safer online with Windows Live Family Safety. <a href='http://www.windowslive.com/family_safety/overview.html?ocid=TXT_TAGLM_WL_Refresh_family_safety_052008' target='_new'>Help protect your kids.</a></body>
</html>