Home | History | Annotate | Download | only in libtiff
      1 diff --git a/third_party/libtiff/tif_dirread.c b/third_party/libtiff/tif_dirread.c
      2 index 772ebaf7d..ab938eac9 100644
      3 --- a/third_party/libtiff/tif_dirread.c
      4 +++ b/third_party/libtiff/tif_dirread.c
      5 @@ -41,6 +41,7 @@
      6  
      7  #include "tiffiop.h"
      8  #include <float.h>
      9 +#include <limits.h>
     10  
     11  #define IGNORE 0          /* tag placeholder used below */
     12  #define FAILED_FII    ((uint32) -1)
     13 @@ -3638,6 +3639,13 @@ TIFFReadDirectory(TIFF* tif)
     14  		    isTiled(tif) ? "tiles" : "strips");
     15  		goto bad;
     16  	}
     17 +	if (tif->tif_dir.td_nstrips > INT_MAX) {
     18 +		TIFFErrorExt(tif->tif_clientdata, module,
     19 +		    "Cannot handle %u number of %s",
     20 +		    tif->tif_dir.td_nstrips,
     21 +		    isTiled(tif) ? "tiles" : "strips");
     22 +		goto bad;
     23 +	}
     24  	tif->tif_dir.td_stripsperimage = tif->tif_dir.td_nstrips;
     25  	if (tif->tif_dir.td_planarconfig == PLANARCONFIG_SEPARATE)
     26  		tif->tif_dir.td_stripsperimage /= tif->tif_dir.td_samplesperpixel;
     27