diff options
author | Even Rouault <even.rouault@spatialys.com> | 2019-10-03 21:14:44 +0200 |
---|---|---|
committer | Even Rouault <even.rouault@spatialys.com> | 2019-10-03 21:14:44 +0200 |
commit | 43b0c984f0a2c81565b05b6590bf9de7df612477 (patch) | |
tree | 461464392f7d584c5cd2284bf8d64d4b70d1edc6 | |
parent | fb5fbc320bd0fcf755c0d25c3bafe9c08359b2dc (diff) | |
download | libtiff-git-43b0c984f0a2c81565b05b6590bf9de7df612477.tar.gz |
tif_read: align code of TIFFReadRawStrip() and TIFFReadRawTile() that differed for non good reason. Non-functional change normally. (fixes GitLab #162)
-rw-r--r-- | libtiff/tif_read.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/libtiff/tif_read.c b/libtiff/tif_read.c index 2ccaec98..527fadd6 100644 --- a/libtiff/tif_read.c +++ b/libtiff/tif_read.c @@ -723,7 +723,7 @@ TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size) { static const char module[] = "TIFFReadRawStrip"; TIFFDirectory *td = &tif->tif_dir; - uint64 bytecount; + uint64 bytecount64; tmsize_t bytecountm; if (!TIFFCheckRead(tif, 0)) @@ -741,13 +741,14 @@ TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size) "Compression scheme does not support access to raw uncompressed data"); return ((tmsize_t)(-1)); } - bytecount = TIFFGetStrileByteCount(tif, strip); - bytecountm = _TIFFCastUInt64ToSSize(tif, bytecount, module); - if (bytecountm == 0) { + bytecount64 = TIFFGetStrileByteCount(tif, strip); + if (size != (tmsize_t)(-1) && (uint64)size <= bytecount64) + bytecountm = size; + else + bytecountm = _TIFFCastUInt64ToSSize(tif, bytecount64, module); + if( bytecountm == 0 ) { return ((tmsize_t)(-1)); } - if (size != (tmsize_t)(-1) && size < bytecountm) - bytecountm = size; return (TIFFReadRawStrip1(tif, strip, buf, bytecountm, module)); } @@ -1185,10 +1186,11 @@ TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size) return ((tmsize_t)(-1)); } bytecount64 = TIFFGetStrileByteCount(tif, tile); - if (size != (tmsize_t)(-1) && (uint64)size < bytecount64) - bytecount64 = (uint64)size; - bytecountm = _TIFFCastUInt64ToSSize(tif, bytecount64, module); - if( bytecountm == 0 ) { + if (size != (tmsize_t)(-1) && (uint64)size <= bytecount64) + bytecountm = size; + else + bytecountm = _TIFFCastUInt64ToSSize(tif, bytecount64, module); + if( bytecountm == 0 ) { return ((tmsize_t)(-1)); } return (TIFFReadRawTile1(tif, tile, buf, bytecountm, module)); |