Using tiff-4.5.0rc1, I get a test error in the imagecodecs Python library trying to read 65535 pages/IFDs from a multi-page TIFF, which worked with libtiff-4.4.

The issue seems to be an uint16 overflow of `tif->tif_curdir` in `TIFFReadDirectory` at <https://gitlab.com/libtiff/libtiff/-/blob/master/libtiff/tif_dirread.c#L4078> when `TIFFSetDirectory(tif, 65534)` is followed by `TIFFSetDirectory(tif, 0)`. In that case libtiff returns a warning and an error:

"TIFFReadDirectory: Warning, Didn't read next directory due to IFD looping at offset 0xa7ff1e (11009822) to offset 0x8 (8)."

Error: "Cannot handle more than 65535 TIFF directories"

The test file at <https://github.com/cgohlke/imagecodecs/blob/master/tests/tiff/gray.movie.u2.tif> contains 65567 pages.

Best regards.

On 12/9/2022 7:48 AM, Even Rouault wrote:
Hi,

I've prepared a release candidate for libtiff v4.5.0:

- https://download.osgeo.org/libtiff/tiff-4.5.0rc1.tar.gz
- https://download.osgeo.org/libtiff/tiff-4.5.0rc1.tar.gz.sig
- https://download.osgeo.org/libtiff/tiff-4.5.0rc1.tar.xz
- https://download.osgeo.org/libtiff/tiff-4.5.0rc1.tar.xz.sig
- https://download.osgeo.org/libtiff/tiff-4.5.0rc1.zip
- https://download.osgeo.org/libtiff/tiff-4.5.0rc1.zip.sig

Release notes at https://libtiff.gitlab.io/libtiff/releases/v4.5.0.html

I'll promote it to final next week if no serious blocking issues are reported.

Thanks to all contributors.

Best regards,

_______________________________________________
Tiff mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/tiff

Reply via email to