Ticket #1814 (closed defect: fixed)

Opened 6 years ago

Last modified 6 years ago

internal libtiff bug in 64bit built

Reported by: rouault Owned by: warmerdam
Priority: normal Milestone: 1.5.0
Component: ConfigBuild Version: svn-trunk
Severity: normal Keywords: libtiff
Cc:

Description

On a 64bit GDAL build with internal libtiff support, GDALChecksumImage on the attached TIF gives 21227.

On a 64bit GDAL build with external libtiff support, GDALChecksumImage on the attached TIF gives 23035.

On a 32bit GDAL build with internal libtiff support, GDALChecksumImage on the attached TIF gives 23035.

Conclusion: there's something wrong with internal libtiff in 64bit.

Attachments

frmt24.cit.tif Download (1.8 KB) - added by rouault 6 years ago.
TIF file content extracted from frmt24.cit from autotest

Change History

Changed 6 years ago by rouault

TIF file content extracted from frmt24.cit from autotest

Changed 6 years ago by rouault

  • keywords libtiff added
  • version changed from unspecified to svn-trunk
  • component changed from default to GDAL_Raster

Changed 6 years ago by rouault

Issue solved !

I've diff'd old tif_fax3.c and tif_fax3.c and there's this little interesting change : #ifdef SIZEOF_LONG == 8 --> #if SIZEOF_UNSIGNED_LONG == 8

and we don't test sizeof(unsigned long) in configure.in ....

Changed 6 years ago by rouault

Fix commited in r12122.

configure needs to be regenerated.

Changed 6 years ago by rouault

I'm wondering if it wouldn't be good to add something like the following lines in libtiff4 :

#ifndef SIZEOF_UNSIGNED_LONG #error "SIZEOF_UNSIGNED_LONG needs to be defined !" #endif

Changed 6 years ago by rouault

  • component changed from GDAL_Raster to ConfigBuild

Changed 6 years ago by warmerdam

  • status changed from new to closed
  • resolution set to fixed
  • milestone set to 1.5.0

I have modified cpl_config.h.vc to also define this (as 4).

I have also sent an email to the libtiff list discussing options to make tif_fax3.c less fragile.

Thanks Even!

Note: See TracTickets for help on using tickets.