From 69fc0413994f76a3ed87c76de414d9893e64dfb2 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 31 Dec 2019 19:11:03 +1100 Subject: [PATCH] Test out of bounds signed rational --- Tests/test_file_tiff_metadata.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Tests/test_file_tiff_metadata.py b/Tests/test_file_tiff_metadata.py index edfeeb465..4b8034cb2 100644 --- a/Tests/test_file_tiff_metadata.py +++ b/Tests/test_file_tiff_metadata.py @@ -264,7 +264,6 @@ class TestFileTiffMetadata(PillowTestCase): self.assertEqual(numerator, reloaded.tag_v2[37380].numerator) self.assertEqual(denominator, reloaded.tag_v2[37380].denominator) - # pair of 4 byte signed longs numerator = -(2 ** 31) denominator = 2 ** 31 - 1 @@ -277,6 +276,19 @@ class TestFileTiffMetadata(PillowTestCase): self.assertEqual(numerator, reloaded.tag_v2[37380].numerator) self.assertEqual(denominator, reloaded.tag_v2[37380].denominator) + # out of bounds of 4 byte signed long + numerator = -2 ** 31 - 1 + denominator = 1 + + info[37380] = TiffImagePlugin.IFDRational(numerator, denominator) + + out = self.tempfile("temp.tiff") + im.save(out, tiffinfo=info, compression="raw") + + reloaded = Image.open(out) + self.assertEqual(- 2 ** 31, reloaded.tag_v2[37380].numerator) + self.assertEqual(1, reloaded.tag_v2[37380].denominator) + def test_ifd_signed_long(self): im = hopper() info = TiffImagePlugin.ImageFileDirectory_v2()