Merge pull request #7883 from radarhere/tiff

Raise ValueError if seeking to greater than offset-sized integer in TIFF
This commit is contained in:
Hugo van Kemenade 2024-04-01 08:46:05 +03:00 committed by GitHub
commit da13358245
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 7 additions and 0 deletions

Binary file not shown.

View File

@ -113,6 +113,10 @@ class TestFileTiff:
outfile = str(tmp_path / "temp.tif")
im.save(outfile, save_all=True, append_images=[im], tiffinfo=im.tag_v2)
def test_seek_too_large(self):
with pytest.raises(ValueError, match="Unable to seek to frame"):
Image.open("Tests/images/seek_too_large.tif")
def test_set_legacy_api(self) -> None:
ifd = TiffImagePlugin.ImageFileDirectory_v2()
with pytest.raises(Exception) as e:

View File

@ -1167,6 +1167,9 @@ class TiffImageFile(ImageFile.ImageFile):
self.__next,
self.fp.tell(),
)
if self.__next >= 2**63:
msg = "Unable to seek to frame"
raise ValueError(msg)
self.fp.seek(self.__next)
self._frame_pos.append(self.__next)
logger.debug("Loading tags, location: %s", self.fp.tell())