diff --git a/PIL/PngImagePlugin.py b/PIL/PngImagePlugin.py index 4d82c9a97..12a7ef17e 100644 --- a/PIL/PngImagePlugin.py +++ b/PIL/PngImagePlugin.py @@ -140,7 +140,7 @@ class ChunkStream(object): # Skip CRC checks for ancillary chunks if allowed to load truncated images # 5th byte of first char is 1 [specs, section 5.4] - if ImageFile.LOAD_TRUNCATED_IMAGES and (ord(cid[0]) >> 5 & 1): + if ImageFile.LOAD_TRUNCATED_IMAGES and (i8(cid[0]) >> 5 & 1): self.crc_skip(cid, data) return diff --git a/Tests/test_file_png.py b/Tests/test_file_png.py index d3ee54e54..e09abb172 100644 --- a/Tests/test_file_png.py +++ b/Tests/test_file_png.py @@ -324,7 +324,7 @@ class TestFilePng(PillowTestCase): # check ignores crc errors in ancillary chunks chunk_data = chunk(b'tEXt', b'spam') - broken_crc_chunk_data = chunk_data[:-1] + 'q' # break CRC + broken_crc_chunk_data = chunk_data[:-1] + b'q' # break CRC image_data = HEAD + broken_crc_chunk_data + TAIL self.assertRaises(SyntaxError, @@ -340,7 +340,7 @@ class TestFilePng(PillowTestCase): def test_verify_not_ignores_crc_error_in_required_chunk(self): # check does not ignore crc errors in required chunks - image_data = MAGIC + IHDR[:-1] + 'q' + TAIL + image_data = MAGIC + IHDR[:-1] + b'q' + TAIL ImageFile.LOAD_TRUNCATED_IMAGES = True try: