From 66e86f325fb01a3061ebded1995e614a5e8fe475 Mon Sep 17 00:00:00 2001 From: hugovk Date: Thu, 2 Apr 2015 08:29:18 +0300 Subject: [PATCH 1/2] Catch struct.error on invalid JPEG (#1163) --- PIL/Image.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PIL/Image.py b/PIL/Image.py index 58944f891..7cfa72e6f 100644 --- a/PIL/Image.py +++ b/PIL/Image.py @@ -110,6 +110,7 @@ from PIL._util import deferred_error import os import sys import io +import struct # type stuff import collections @@ -601,7 +602,7 @@ class Image: def _repr_png_(self): """ iPython display hook support - + :returns: png version of the image as bytes """ from io import BytesIO @@ -893,12 +894,11 @@ class Image: if isinstance(t, bytes): self.im.putpalettealphas(t) elif isinstance(t, int): - self.im.putpalettealpha(t,0) + self.im.putpalettealpha(t, 0) else: raise ValueError("Transparency for P mode should" + " be bytes or int") - if mode == "P" and palette == ADAPTIVE: im = self.im.quantize(colors) new = self._new(im) @@ -1546,7 +1546,7 @@ class Image: self.load() - size=tuple(size) + size = tuple(size) if self.size == size: return self._new(self.im) @@ -2266,7 +2266,7 @@ def open(fp, mode="r"): im = factory(fp, filename) _decompression_bomb_check(im.size) return im - except (SyntaxError, IndexError, TypeError): + except (SyntaxError, IndexError, TypeError, struct.error): # import traceback # traceback.print_exc() pass @@ -2281,7 +2281,7 @@ def open(fp, mode="r"): im = factory(fp, filename) _decompression_bomb_check(im.size) return im - except (SyntaxError, IndexError, TypeError): + except (SyntaxError, IndexError, TypeError, struct.error): # import traceback # traceback.print_exc() pass From 3f09b8f1715b018e8249337f1432070301c61e18 Mon Sep 17 00:00:00 2001 From: Alex Clark Date: Thu, 2 Apr 2015 10:59:03 -0400 Subject: [PATCH 2/2] Prep 2.8.1 --- CHANGES.rst | 6 ++++++ PIL/__init__.py | 2 +- _imaging.c | 2 +- setup.py | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 88720be67..88c9a7793 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,12 @@ Changelog (Pillow) ================== +2.8.1 (2015-04-02) +------------------ + +- Bug fix: Catch struct.error on invalid JPEG, fixes #1163 + [wiredfool, hugovk] + 2.8.0 (2015-04-01) ------------------ diff --git a/PIL/__init__.py b/PIL/__init__.py index d1537769e..4dce12d33 100644 --- a/PIL/__init__.py +++ b/PIL/__init__.py @@ -12,7 +12,7 @@ # ;-) VERSION = '1.1.7' # PIL version -PILLOW_VERSION = '2.8.0' # Pillow +PILLOW_VERSION = '2.8.1' # Pillow _plugins = ['BmpImagePlugin', 'BufrStubImagePlugin', diff --git a/_imaging.c b/_imaging.c index c3be9beab..08e003c80 100644 --- a/_imaging.c +++ b/_imaging.c @@ -71,7 +71,7 @@ * See the README file for information on usage and redistribution. */ -#define PILLOW_VERSION "2.8.0" +#define PILLOW_VERSION "2.8.1" #include "Python.h" diff --git a/setup.py b/setup.py index a5f114d88..3887b421d 100644 --- a/setup.py +++ b/setup.py @@ -90,7 +90,7 @@ except (ImportError, OSError): NAME = 'Pillow' -PILLOW_VERSION = '2.8.0' +PILLOW_VERSION = '2.8.1' TCL_ROOT = None JPEG_ROOT = None JPEG2K_ROOT = None