[poppler] poppler/GfxState.cc

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Sep 22 23:46:11 UTC 2018


 poppler/GfxState.cc |   17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

New commits:
commit 8a845c65e0dc290af920ce4175689f7321e1d459
Author: Albert Astals Cid <aacid at kde.org>
Date:   Sun Sep 23 01:45:38 2018 +0200

    Fix crash introduced by c792e4cde92e6ece06592955068ffb579e826382
    
    We need to initialize properly the fields that will be used in the
    destructor before bailing out

diff --git a/poppler/GfxState.cc b/poppler/GfxState.cc
index 3137851d..ef5aefbc 100644
--- a/poppler/GfxState.cc
+++ b/poppler/GfxState.cc
@@ -5707,13 +5707,21 @@ GfxImageColorMap::GfxImageColorMap(int bitsA, Object *decode,
   ok = gTrue;
   useMatte = gFalse;
 
+  colorSpace = colorSpaceA;
+
+  // initialize
+  for (k = 0; k < gfxColorMaxComps; ++k) {
+    lookup[k] = nullptr;
+    lookup2[k] = nullptr;
+  }
+  byte_lookup = nullptr;
+
   // bits per component and color space
   if (unlikely(bitsA <= 0 || bitsA > 30))
     goto err1;
 
   bits = bitsA;
   maxPixel = (1 << bits) - 1;
-  colorSpace = colorSpaceA;
 
   // this is a hack to support 16 bits images, everywhere
   // we assume a component fits in 8 bits, with this hack
@@ -5721,13 +5729,6 @@ GfxImageColorMap::GfxImageColorMap(int bitsA, Object *decode,
   // The hack has another part on ImageStream::getLine
   if (maxPixel > 255) maxPixel = 255;
 
-  // initialize
-  for (k = 0; k < gfxColorMaxComps; ++k) {
-    lookup[k] = nullptr;
-    lookup2[k] = nullptr;
-  }
-  byte_lookup = nullptr;
-
   // get decode map
   if (decode->isNull()) {
     nComps = colorSpace->getNComps();


More information about the poppler mailing list