Skip to content

Commit

Permalink
Merge pull request #7883 from radarhere/tiff
Browse files Browse the repository at this point in the history
Raise ValueError if seeking to greater than offset-sized integer in TIFF
  • Loading branch information
hugovk committed Apr 1, 2024
2 parents 1d733f4 + 21801f3 commit da13358
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 0 deletions.
Binary file added Tests/images/seek_too_large.tif
Binary file not shown.
4 changes: 4 additions & 0 deletions Tests/test_file_tiff.py
Expand Up @@ -113,6 +113,10 @@ def test_bigtiff(self, tmp_path: Path) -> None:
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:
Expand Down
3 changes: 3 additions & 0 deletions src/PIL/TiffImagePlugin.py
Expand Up @@ -1167,6 +1167,9 @@ def _seek(self, frame):
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())
Expand Down

0 comments on commit da13358

Please sign in to comment.