2017.08.02 15:00 "[Tiff] Error handling in Read/Write/Seek", by Nicolas RUFF

2017.09.06 13:16 "Re: [Tiff] Error handling in Read/Write/Seek", by Nicolas RUFF

One potential issue I can see is that we use off_t here, which isn't necessarily what is use in the implementation of the file system callbacks. For example tif_unix.c uses _TIFF_off_t. I'm wondering for example if off_t might not be 32 bit only in some circumstances when evaluated in libtiff non-IO code.

Indeed off_t is 32-bit on 32-bit Linux systems.

TIFFSeekProc is typedef'ed to (thandle_t, toff_t, int).

And toff_t is an alias for uint64, regardless of the platform (from tiffio.h).

tif_unix.c implementation adheres to this type definition: _tiffSeekProc(thandle_t fd, uint64 off, int whence)

So the proper patch should be:

- (TIFFSeekFile((tif),(off),SEEK_SET)==(off)) + (((int64)(off) >= 0) && TIFFSeekFile((tif),(off),SEEK_SET)==(off))

Thank you for catching this!