|TIFF and LibTiff Mailing List Archive|
LibTiff Mailing List
2017.09.06 13:16 "Re: 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!