Opened 11 years ago
Last modified 11 years ago
#24544 closed Cleanup/optimization
core.files.images.get_image_dimensions broken on some valid PNG images — at Initial Version
| Reported by: | artscoop | Owned by: | nobody |
|---|---|---|---|
| Component: | File uploads/storage | Version: | 1.7 |
| Severity: | Normal | Keywords: | PIL |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | yes |
| Easy pickings: | no | UI/UX: | no |
Description
Hi,
second time I find a bug in the same function. Here, the function failed (exception raised and not caught) on a valid PNG file (this image: https://mega.co.nz/#!W0tXzBAK!iLprbqkVWFAzfcn2GUDRGHiH8Pxyi4DxCQi580shcec).
The error raised by PIL is a struct.error, which should be expected but is not caught by the chunk feeder loop.
The feeder knows this
except zlib.error as e:
# ignore zlib complaining on truncated stream, just feed more
# data to parser (ticket #19457).
if e.args[0].startswith("Error -5"):
pass
else:
raise
but does not know this
from struct import error
...
except struct.error:
pass
Note:
See TracTickets
for help on using tickets.
Valid but faulty image