18 lines
643 B
Diff
18 lines
643 B
Diff
|
--- 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)
|
||
|
{
|