mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-26 01:46:18 +03:00
Fixed reading PNG iCCP compression method
This commit is contained in:
parent
b8722f3431
commit
383ac4fca0
BIN
Tests/images/unknown_compression_method.png
Normal file
BIN
Tests/images/unknown_compression_method.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.0 KiB |
|
@ -619,6 +619,10 @@ class TestFilePng:
|
|||
with Image.open("Tests/images/hopper_idat_after_image_end.png") as im:
|
||||
assert im.text == {"TXT": "VALUE", "ZIP": "VALUE"}
|
||||
|
||||
def test_unknown_compression_method(self) -> None:
|
||||
with pytest.raises(SyntaxError, match="Unknown compression method"):
|
||||
PngImagePlugin.PngImageFile("Tests/images/unknown_compression_method.png")
|
||||
|
||||
def test_padded_idat(self) -> None:
|
||||
# This image has been manually hexedited
|
||||
# so that the IDAT chunk has padding at the end
|
||||
|
|
|
@ -392,8 +392,8 @@ class PngStream(ChunkStream):
|
|||
# Compressed profile n bytes (zlib with deflate compression)
|
||||
i = s.find(b"\0")
|
||||
logger.debug("iCCP profile name %r", s[:i])
|
||||
logger.debug("Compression method %s", s[i])
|
||||
comp_method = s[i]
|
||||
comp_method = s[i + 1]
|
||||
logger.debug("Compression method %s", comp_method)
|
||||
if comp_method != 0:
|
||||
msg = f"Unknown compression method {comp_method} in iCCP chunk"
|
||||
raise SyntaxError(msg)
|
||||
|
|
Loading…
Reference in New Issue
Block a user