xref: /aosp_15_r20/external/pdfium/third_party/libtiff/0028-nstrips-OOM.patch (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1*3ac0a46fSAndroid Build Coastguard Workerdiff --git a/third_party/libtiff/tif_dirread.c b/third_party/libtiff/tif_dirread.c
2*3ac0a46fSAndroid Build Coastguard Workerindex 35425b4b8..4c3b75603 100644
3*3ac0a46fSAndroid Build Coastguard Worker--- a/third_party/libtiff/tif_dirread.c
4*3ac0a46fSAndroid Build Coastguard Worker+++ b/third_party/libtiff/tif_dirread.c
5*3ac0a46fSAndroid Build Coastguard Worker@@ -4627,6 +4627,14 @@ int TIFFReadDirectory(TIFF *tif)
6*3ac0a46fSAndroid Build Coastguard Worker                       isTiled(tif) ? "tiles" : "strips");
7*3ac0a46fSAndroid Build Coastguard Worker         goto bad;
8*3ac0a46fSAndroid Build Coastguard Worker     }
9*3ac0a46fSAndroid Build Coastguard Worker+    if (tif->tif_dir.td_nstrips > INT_MAX)
10*3ac0a46fSAndroid Build Coastguard Worker+    {
11*3ac0a46fSAndroid Build Coastguard Worker+        TIFFErrorExt(tif->tif_clientdata, module,
12*3ac0a46fSAndroid Build Coastguard Worker+                     "Cannot handle %u number of %s",
13*3ac0a46fSAndroid Build Coastguard Worker+                     tif->tif_dir.td_nstrips,
14*3ac0a46fSAndroid Build Coastguard Worker+                     isTiled(tif) ? "tiles" : "strips");
15*3ac0a46fSAndroid Build Coastguard Worker+        goto bad;
16*3ac0a46fSAndroid Build Coastguard Worker+    }
17*3ac0a46fSAndroid Build Coastguard Worker     tif->tif_dir.td_stripsperimage = tif->tif_dir.td_nstrips;
18*3ac0a46fSAndroid Build Coastguard Worker     if (tif->tif_dir.td_planarconfig == PLANARCONFIG_SEPARATE)
19*3ac0a46fSAndroid Build Coastguard Worker         tif->tif_dir.td_stripsperimage /= tif->tif_dir.td_samplesperpixel;
20