summaryrefslogtreecommitdiff
path: root/libtiff
diff options
context:
space:
mode:
authorerouault <erouault>2017-06-27 13:44:44 +0000
committererouault <erouault>2017-06-27 13:44:44 +0000
commit95290821b4b170309ce104f866bcd9adff24ab0a (patch)
tree64447fe1f5806022a0cefba4f61e5d2c125e7916 /libtiff
parentda310a49942792adefd061f6f788ef293ffae415 (diff)
downloadlibtiff-95290821b4b170309ce104f866bcd9adff24ab0a.tar.gz
* libtiff/tif_dirread.c: in TIFFReadDirEntryFloat(), check that a
double value can fit in a float before casting. Patch by Nicolas RUFF
Diffstat (limited to 'libtiff')
-rw-r--r--libtiff/tif_dirread.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libtiff/tif_dirread.c b/libtiff/tif_dirread.c
index 2e2cdccc..a3d0efd1 100644
--- a/libtiff/tif_dirread.c
+++ b/libtiff/tif_dirread.c
@@ -1,4 +1,4 @@
-/* $Id: tif_dirread.c,v 1.212 2017-06-18 10:31:50 erouault Exp $ */
+/* $Id: tif_dirread.c,v 1.213 2017-06-27 13:44:44 erouault Exp $ */
/*
* Copyright (c) 1988-1997 Sam Leffler
@@ -636,6 +636,8 @@ static enum TIFFReadDirEntryErr TIFFReadDirEntryFloat(TIFF* tif, TIFFDirEntry* d
err=TIFFReadDirEntryCheckedDouble(tif,direntry,&m);
if (err!=TIFFReadDirEntryErrOk)
return(err);
+ if ((m > FLT_MAX) || (m < FLT_MIN))
+ return(TIFFReadDirEntryErrRange);
*value=(float)m;
return(TIFFReadDirEntryErrOk);
}