[Gdal-dev] crash ( access violation ) in GDAL when trying to read a TIFF

Stephane Routelous route at cae.com
Wed Sep 1 11:26:24 EDT 2004


Hi,

I'm using gdal1.2.1 on Windows.
When I'm reading a tif file (for example the cramps-tile.tif file from the
libtiff test images), I got a crash on windows (VisualC++ 6.0) using
BoundChecker.
If I run the test in debug without Boundchecker or in release without
boundchecker, it works fine.

The code is simply :
	GDALAllRegister();
	GDALDataset* m_gdalDataSet = (GDALDataset *) GDALOpen(
"C:\\TestDB\\cramps-tile.tif", GA_ReadOnly ); //crash here
	GDALClose(m_gdalDataSet);

the error is reported to occur in tif_dirinfo.c line 292 :
static int
tagCompare(const void* a, const void* b)
{
	const TIFFFieldInfo* ta = *(const TIFFFieldInfo**) a;
	const TIFFFieldInfo* tb = *(const TIFFFieldInfo**) b;
	/* NB: be careful of return values for 16-bit platforms */
	if (ta->field_tag != tb->field_tag)
//crash here
		return (ta->field_tag < tb->field_tag ? -1 : 1);
	else
		return ((int)tb->field_type - (int)ta->field_type);
}

According to the debugger, ta is not valid (0xfbfbfbfb) but a is valid.
When I tried to make the cast in the debug window, I got (which seems to be
invalid) :
-	*(const TIFFFieldInfo**) a	{...}
	field_tag	4227595259
	field_readcount	-20968
	field_writecount	4134
	field_type	270970412
	field_bit	64764
	field_oktochange	252 'ü'
	field_passcount	252 'ü'
+	field_name	0x003601a9
"56HQp|~?S'(tm)Y¢¤¦§©J
LNP


!"#$%&'()*+,-./0123
456789:;<=Q



"

Can you help me with this problem ?

Thanks a lot in advance,

Stephane
http://www.exotk.org




More information about the Gdal-dev mailing list