blob: 0a8721ebe012afb5b53eb5c80cff377009cc5c20 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
--- a/libtiff/tif_tile.c
+++ b/libtiff/tif_tile.c
@@ -233,7 +233,13 @@
_TIFFMultiply64(tif, samplingrow_size, samplingblocks_ver, module));
}
else
- return (_TIFFMultiply64(tif, nrows, TIFFTileRowSize64(tif), module));
+ {
+ uint64_t row_size = TIFFTileRowSize64(tif);
+ /* I think the way this works the expectation is there are always even num of samples */
+ if (td->td_photometric == PHOTOMETRIC_YCBCR)
+ row_size = TIFFroundup_64(row_size, 2);
+ return (_TIFFMultiply64(tif, nrows, row_size, module));
+ }
}
tmsize_t TIFFVTileSize(TIFF *tif, uint32_t nrows)
{
|