mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-27 10:26:19 +03:00
Catch struct.error on invalid JPEG (#1163)
This commit is contained in:
parent
d754598f14
commit
66e86f325f
10
PIL/Image.py
10
PIL/Image.py
|
@ -110,6 +110,7 @@ from PIL._util import deferred_error
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import io
|
import io
|
||||||
|
import struct
|
||||||
|
|
||||||
# type stuff
|
# type stuff
|
||||||
import collections
|
import collections
|
||||||
|
@ -893,12 +894,11 @@ class Image:
|
||||||
if isinstance(t, bytes):
|
if isinstance(t, bytes):
|
||||||
self.im.putpalettealphas(t)
|
self.im.putpalettealphas(t)
|
||||||
elif isinstance(t, int):
|
elif isinstance(t, int):
|
||||||
self.im.putpalettealpha(t,0)
|
self.im.putpalettealpha(t, 0)
|
||||||
else:
|
else:
|
||||||
raise ValueError("Transparency for P mode should" +
|
raise ValueError("Transparency for P mode should" +
|
||||||
" be bytes or int")
|
" be bytes or int")
|
||||||
|
|
||||||
|
|
||||||
if mode == "P" and palette == ADAPTIVE:
|
if mode == "P" and palette == ADAPTIVE:
|
||||||
im = self.im.quantize(colors)
|
im = self.im.quantize(colors)
|
||||||
new = self._new(im)
|
new = self._new(im)
|
||||||
|
@ -1546,7 +1546,7 @@ class Image:
|
||||||
|
|
||||||
self.load()
|
self.load()
|
||||||
|
|
||||||
size=tuple(size)
|
size = tuple(size)
|
||||||
if self.size == size:
|
if self.size == size:
|
||||||
return self._new(self.im)
|
return self._new(self.im)
|
||||||
|
|
||||||
|
@ -2266,7 +2266,7 @@ def open(fp, mode="r"):
|
||||||
im = factory(fp, filename)
|
im = factory(fp, filename)
|
||||||
_decompression_bomb_check(im.size)
|
_decompression_bomb_check(im.size)
|
||||||
return im
|
return im
|
||||||
except (SyntaxError, IndexError, TypeError):
|
except (SyntaxError, IndexError, TypeError, struct.error):
|
||||||
# import traceback
|
# import traceback
|
||||||
# traceback.print_exc()
|
# traceback.print_exc()
|
||||||
pass
|
pass
|
||||||
|
@ -2281,7 +2281,7 @@ def open(fp, mode="r"):
|
||||||
im = factory(fp, filename)
|
im = factory(fp, filename)
|
||||||
_decompression_bomb_check(im.size)
|
_decompression_bomb_check(im.size)
|
||||||
return im
|
return im
|
||||||
except (SyntaxError, IndexError, TypeError):
|
except (SyntaxError, IndexError, TypeError, struct.error):
|
||||||
# import traceback
|
# import traceback
|
||||||
# traceback.print_exc()
|
# traceback.print_exc()
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in New Issue
Block a user