poppler/GfxState.cc |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit 2930542f667ac187533ec899280df4b0b7ed0ba9
Author: Albert Astals Cid <[email protected]>
Date:   Sat Aug 10 11:54:27 2019 +0200

    GfxPatchMeshShading::parse: Fix abort on broken files

diff --git a/poppler/GfxState.cc b/poppler/GfxState.cc
index b239e273..3061abbe 100644
--- a/poppler/GfxState.cc
+++ b/poppler/GfxState.cc
@@ -5260,8 +5260,12 @@ GfxPatchMeshShading 
*GfxPatchMeshShading::parse(GfxResources *res, int typeA, Di
     if (nPatchesA == patchesSize) {
       int oldPatchesSize = patchesSize;
       patchesSize = (patchesSize == 0) ? 16 : 2 * patchesSize;
-      patchesA = (GfxPatch *)greallocn(patchesA,
+      patchesA = (GfxPatch *)greallocn_checkoverflow(patchesA,
                                       patchesSize, sizeof(GfxPatch));
+      if (unlikely(!patchesA)) {
+       for (int k = 0; k < nFuncsA; ++k) delete funcsA[k];
+       return nullptr;
+      }
       memset(patchesA + oldPatchesSize, 0, (patchesSize - oldPatchesSize) * 
sizeof(GfxPatch));
     }
     p = &patchesA[nPatchesA];
_______________________________________________
poppler mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to