Skip to content

Commit

Permalink
Merge pull request #6402 from radarhere/gif_decompression_bomb
Browse files Browse the repository at this point in the history
Added GIF decompression bomb check
  • Loading branch information
radarhere committed Jun 30, 2022
2 parents 8f35234 + c9f1b35 commit 884437f
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 0 deletions.
Binary file added Tests/images/decompression_bomb_extents.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions Tests/test_decompression_bomb.py
Expand Up @@ -61,6 +61,11 @@ def test_exception_gif(self):
with Image.open("Tests/images/decompression_bomb.gif"):
pass

def test_exception_gif_extents(self):
with Image.open("Tests/images/decompression_bomb_extents.gif") as im:
with pytest.raises(Image.DecompressionBombError):
im.seek(1)

def test_exception_bmp(self):
with pytest.raises(Image.DecompressionBombError):
with Image.open("Tests/images/bmp/b/reallybig.bmp"):
Expand Down
1 change: 1 addition & 0 deletions src/PIL/GifImagePlugin.py
Expand Up @@ -265,6 +265,7 @@ def _seek(self, frame, update_image=True):
x1, y1 = x0 + i16(s, 4), y0 + i16(s, 6)
if (x1 > self.size[0] or y1 > self.size[1]) and update_image:
self._size = max(x1, self.size[0]), max(y1, self.size[1])
Image._decompression_bomb_check(self._size)
frame_dispose_extent = x0, y0, x1, y1
flags = s[8]

Expand Down

0 comments on commit 884437f

Please sign in to comment.