summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-10-03 21:14:44 +0200
committerEven Rouault <even.rouault@spatialys.com>2019-10-03 21:14:44 +0200
commit43b0c984f0a2c81565b05b6590bf9de7df612477 (patch)
tree461464392f7d584c5cd2284bf8d64d4b70d1edc6
parentfb5fbc320bd0fcf755c0d25c3bafe9c08359b2dc (diff)
downloadlibtiff-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.c22
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));