diff options
| author | Florian Apolloner <florian@apolloner.eu> | 2012-07-30 21:54:29 +0200 |
|---|---|---|
| committer | Florian Apolloner <florian@apolloner.eu> | 2012-07-30 21:54:29 +0200 |
| commit | dd16b17099b7d86f27773df048c5014cf439b282 (patch) | |
| tree | ef954c523dd74928f7620d94e1dbfb296c56209b | |
| parent | e567f439bdfc60e16c465220fdaa8ea8a0fae936 (diff) | |
Fixed a security issue in image uploading. Disclosure and release forthcoming.
| -rw-r--r-- | django/core/files/images.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/django/core/files/images.py b/django/core/files/images.py index 228a7118c5..7d7eac65db 100644 --- a/django/core/files/images.py +++ b/django/core/files/images.py @@ -47,13 +47,18 @@ def get_image_dimensions(file_or_path, close=False): file = open(file_or_path, 'rb') close = True try: + # Most of the time PIL only needs a small chunk to parse the image and + # get the dimensions, but with some TIFF files PIL needs to parse the + # whole file. + chunk_size = 1024 while 1: - data = file.read(1024) + data = file.read(chunk_size) if not data: break p.feed(data) if p.image: return p.image.size + chunk_size = chunk_size*2 return None finally: if close: |
