Skip to content

Commit

Permalink
Do not create core image in seek(), when load() might not run
Browse files Browse the repository at this point in the history
  • Loading branch information
radarhere committed Oct 8, 2024
1 parent 949079b commit a9b9a63
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions src/PIL/TiffImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -1193,11 +1193,11 @@ def seek(self, frame: int) -> None:
if not self._seek_check(frame):
return
self._seek(frame)
# Create a new core image object on second and
# subsequent frames in the image. Image may be
# different size/mode.
Image._decompression_bomb_check(self._tile_size)
self.im = Image.core.new(self.mode, self._tile_size)
if self._im is not None and (
self.im.size != self._tile_size or self.im.mode != self.mode
):
# The core image will no longer be used
self._im = None

def _seek(self, frame: int) -> None:
self.fp = self._fp
Expand Down Expand Up @@ -1279,6 +1279,7 @@ def load(self) -> Image.core.PixelAccess | None:

def load_prepare(self) -> None:
if self._im is None:
Image._decompression_bomb_check(self._tile_size)
self.im = Image.core.new(self.mode, self._tile_size)
ImageFile.ImageFile.load_prepare(self)

Expand Down

0 comments on commit a9b9a63

Please sign in to comment.