From 30dc18523676c35d7610f69be4fca6c5d3bbb2a5 Mon Sep 17 00:00:00 2001 From: Dmitry Bely Date: Mon, 1 Aug 2016 12:55:06 +0300 Subject: [PATCH] __next is not updated properly --- PIL/TiffImagePlugin.py | 1 + Tests/test_file_tiff.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/PIL/TiffImagePlugin.py b/PIL/TiffImagePlugin.py index 524d42a34..1e194d9a6 100644 --- a/PIL/TiffImagePlugin.py +++ b/PIL/TiffImagePlugin.py @@ -975,6 +975,7 @@ class TiffImageFile(ImageFile.ImageFile): self.__frame += 1 self.fp.seek(self._frame_pos[frame]) self.tag_v2.load(self.fp) + self.__next = self.tag_v2.next # fill the legacy tag/ifd entries self.tag = self.ifd = ImageFileDirectory_v1.from_v2(self.tag_v2) self.__frame = frame diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py index 5b01de12b..621694694 100644 --- a/Tests/test_file_tiff.py +++ b/Tests/test_file_tiff.py @@ -434,6 +434,18 @@ class TestFileTiff(PillowTestCase): self.assertEqual(im.size, (10, 10)) im.load() + self.assertRaises(EOFError, lambda: im.seek(2)) + + im.seek(0) + self.assertEqual(im._compression, 'tiff_ccitt') + self.assertEqual(im.size, (10, 10)) + im.load() + + im.seek(1) + self.assertEqual(im._compression, 'packbits') + self.assertEqual(im.size, (10, 10)) + im.load() + im.seek(0) self.assertEqual(im._compression, 'tiff_ccitt') self.assertEqual(im.size, (10, 10))