From b541aff64ae876e06bf2f8c1ed68359aeb98da3b Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 25 Mar 2021 17:04:31 +1100 Subject: [PATCH] Handle default value for RowsPerStrip TIFF tag --- Tests/images/one_strip.tif | Bin 0 -> 85852 bytes Tests/test_file_libtiff.py | 5 +++++ src/libImaging/TiffDecode.c | 7 +++++-- 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 Tests/images/one_strip.tif diff --git a/Tests/images/one_strip.tif b/Tests/images/one_strip.tif new file mode 100644 index 0000000000000000000000000000000000000000..6ed41e500135a117f24b611e5f8256c05d71bc29 GIT binary patch literal 85852 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

N5`*4~}M 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 literal 0 HcmV?d00001 diff --git a/Tests/test_file_libtiff.py b/Tests/test_file_libtiff.py index d6f4900cd..146d94119 100644 --- a/Tests/test_file_libtiff.py +++ b/Tests/test_file_libtiff.py @@ -869,6 +869,11 @@ class TestFileLibTiff(LibTiffTestCase): im.load() assert im.size == (950, 975) + def test_one_strip(self): + with Image.open("Tests/images/one_strip.tif") as im: + im.load() + assert im.size == (1728, 2344) + def test_orientation(self): with Image.open("Tests/images/g4_orientation_1.tif") as base_im: for i in range(2, 9): diff --git a/src/libImaging/TiffDecode.c b/src/libImaging/TiffDecode.c index 746994da3..ed9c2949f 100644 --- a/src/libImaging/TiffDecode.c +++ b/src/libImaging/TiffDecode.c @@ -328,7 +328,10 @@ _decodeStrip(Imaging im, ImagingCodecState state, TIFF *tiff) { int ret; ret = TIFFGetField(tiff, TIFFTAG_ROWSPERSTRIP, &rows_per_strip); - if (ret != 1) { + if ( + ret != 1 || + rows_per_strip == 4294967295 // 2 ** 32 - 1, the default + ) { rows_per_strip = state->ysize; } TRACE(("RowsPerStrip: %u \n", rows_per_strip)); @@ -564,7 +567,7 @@ ImagingLibTiffDecode( for (x = state->xoff; x < state->xsize; x += tile_width) { /* Sanity Check. Apparently in some cases, the TiffReadRGBA* functions have a different view of the size of the tiff than we're getting from - other functions. So, we need to check here. + other functions. So, we need to check here. */ if (!TIFFCheckTile(tiff, x, y, 0, 0)) { TRACE(("Check Tile Error, Tile at %dx%d\n", x, y));