[poppler] 3 commits - poppler/Gfx.cc poppler/Stream.cc

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jan 15 18:17:42 UTC 2021


 poppler/Gfx.cc    |    5 +++--
 poppler/Stream.cc |    2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

New commits:
commit 4becde57a2fdfd095e400dd9ef64e64d5e94f858
Author: Albert Astals Cid <aacid at kde.org>
Date:   Fri Jan 15 16:08:15 2021 +0100

    CCITTFaxStream: Fix uninitialized memory read in broken files
    
    oss-fuzz/8795

diff --git a/poppler/Stream.cc b/poppler/Stream.cc
index 666d5b2a..a1c8b094 100644
--- a/poppler/Stream.cc
+++ b/poppler/Stream.cc
@@ -1893,7 +1893,7 @@ inline void CCITTFaxStream::addPixelsNeg(int a1, int blackPixels)
         if (a1 < 0) {
             error(errSyntaxError, getPos(), "Invalid CCITTFax code");
             err = true;
-            a1 = 0;
+            a1 = columns;
         }
         while (a0i > 0 && a1 <= codingLine[a0i - 1]) {
             --a0i;
commit c0f34e983761b15e2c9d5fa6628f26fa7d362548
Author: Albert Astals Cid <aacid at kde.org>
Date:   Fri Jan 15 16:04:46 2021 +0100

    Relax the check in Gfx::opSetFillGray

diff --git a/poppler/Gfx.cc b/poppler/Gfx.cc
index 44575569..34a02d53 100644
--- a/poppler/Gfx.cc
+++ b/poppler/Gfx.cc
@@ -1310,7 +1310,7 @@ void Gfx::opSetFillGray(Object args[], int numArgs)
     if (!obj.isNull()) {
         colorSpace = GfxColorSpace::parse(res, &obj, out, state);
     }
-    if (colorSpace == nullptr || colorSpace->getNComps() != 1) {
+    if (colorSpace == nullptr || colorSpace->getNComps() > 1) {
         delete colorSpace;
         colorSpace = state->copyDefaultGrayColorSpace();
     }
commit 548fe49fa53ff0ff63bc1a437ab04908f866cb87
Author: Albert Astals Cid <aacid at kde.org>
Date:   Fri Jan 15 16:01:01 2021 +0100

    Gfx::opSetFillRGBColor: Fix uninitialized memory read in bad files
    
    Make sure colorspace doesn't need more comps than we have
    
    oss-fuzz/29522

diff --git a/poppler/Gfx.cc b/poppler/Gfx.cc
index 694538cf..44575569 100644
--- a/poppler/Gfx.cc
+++ b/poppler/Gfx.cc
@@ -1398,7 +1398,8 @@ void Gfx::opSetFillRGBColor(Object args[], int numArgs)
     if (!obj.isNull()) {
         colorSpace = GfxColorSpace::parse(res, &obj, out, state);
     }
-    if (colorSpace == nullptr) {
+    if (colorSpace == nullptr || colorSpace->getNComps() > 3) {
+        delete colorSpace;
         colorSpace = state->copyDefaultRGBColorSpace();
     }
     state->setFillColorSpace(colorSpace);


More information about the poppler mailing list