Opened 10 years ago

Last modified 10 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

Change History (1)

by artscoop, 10 years ago

Attachment: b.png added

Valid but faulty image

Note: See TracTickets for help on using tickets.
Back to Top