PDF rendering library
CentOS Sources
2017-08-30 3d5b8e87de5697026f127c77efca5f10adcd6248
import poppler-0.26.5-17.el7_4
3 files added
1 files modified
115 ■■■■■ changed files
SOURCES/CVE-2017-9775-1.patch 40 ●●●●● patch | view | raw | blame | history
SOURCES/CVE-2017-9775-2.patch 41 ●●●●● patch | view | raw | blame | history
SOURCES/CVE-2017-9776.patch 22 ●●●●● patch | view | raw | blame | history
SPECS/poppler.spec 12 ●●●●● patch | view | raw | blame | history
SOURCES/CVE-2017-9775-1.patch
New file
@@ -0,0 +1,40 @@
From e465d36b8ecf46b80af4ac6b941ae56eb4883a89 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Mon, 19 Jun 2017 23:35:29 +0200
Subject: [PATCH] Fix crash on malformed files
Bug #101502
---
 poppler/GfxState.cc | 9 +++++++++
 1 file changed, 9 insertions(+)
diff --git a/poppler/GfxState.cc b/poppler/GfxState.cc
index b17925f..e6cd329 100644
--- a/poppler/GfxState.cc
+++ b/poppler/GfxState.cc
@@ -4036,6 +4036,12 @@ void GfxUnivariateShading::getColor(double t, GfxColor *color) {
   double out[gfxColorMaxComps];
   int i, nComps;
+  if (unlikely(nFuncs < 1)) {
+    for (int i = 0; i < gfxColorMaxComps; i++)
+        color->c[i] = 0;
+    return;
+  }
+
   // NB: there can be one function with n outputs or n functions with
   // one output each (where n = number of color components)
   nComps = nFuncs * funcs[0]->getOutputSize();
@@ -4089,6 +4095,9 @@ void GfxUnivariateShading::setupCache(const Matrix *ctm,
   cacheBounds = NULL;
   cacheSize = 0;
+  if (unlikely(nFuncs < 1))
+    return;
+
   // NB: there can be one function with n outputs or n functions with
   // one output each (where n = number of color components)
   nComps = nFuncs * funcs[0]->getOutputSize();
--
2.9.3
SOURCES/CVE-2017-9775-2.patch
New file
@@ -0,0 +1,41 @@
From d9c88e1c8892c79b8865a0dabdcc0d3ffd55c195 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Wed, 21 Jun 2017 00:56:38 +0200
Subject: [PATCH] Fix crash in malformed documents
---
 poppler/GfxState.cc | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/poppler/GfxState.cc b/poppler/GfxState.cc
index e6cd329..f61f812 100644
--- a/poppler/GfxState.cc
+++ b/poppler/GfxState.cc
@@ -4034,18 +4034,18 @@ GfxUnivariateShading::~GfxUnivariateShading() {
 void GfxUnivariateShading::getColor(double t, GfxColor *color) {
   double out[gfxColorMaxComps];
-  int i, nComps;
+  int i;
+
+  // NB: there can be one function with n outputs or n functions with
+  // one output each (where n = number of color components)
+  const int nComps = nFuncs * funcs[0]->getOutputSize();
-  if (unlikely(nFuncs < 1)) {
+  if (unlikely(nFuncs < 1 || nComps > gfxColorMaxComps)) {
     for (int i = 0; i < gfxColorMaxComps; i++)
         color->c[i] = 0;
     return;
   }
-  // NB: there can be one function with n outputs or n functions with
-  // one output each (where n = number of color components)
-  nComps = nFuncs * funcs[0]->getOutputSize();
-
   if (cacheSize > 0) {
     double x, ix, *l, *u, *upper;
--
2.9.3
SOURCES/CVE-2017-9776.patch
New file
@@ -0,0 +1,22 @@
From 55db66c69fd56826b8523710046deab1a8d14ba2 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Wed, 21 Jun 2017 00:55:20 +0200
Subject: [PATCH] Fix crash in malformed documents
---
 poppler/JBIG2Stream.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/poppler/JBIG2Stream.cc b/poppler/JBIG2Stream.cc
index 4853588..d89108c 100644
--- a/poppler/JBIG2Stream.cc
+++ b/poppler/JBIG2Stream.cc
@@ -868,6 +868,8 @@
   oneByte = x0 == ((x1 - 1) & ~7);
   for (yy = y0; yy < y1; ++yy) {
+    if (unlikely((y + yy >= h) || (y + yy < 0)))
+      continue;
     // one byte per line -- need to mask both left and right side
     if (oneByte) {
SPECS/poppler.spec
@@ -1,7 +1,7 @@
Summary: PDF rendering library
Name:    poppler
Version: 0.26.5
Release: 16%{?dist}
Release: 17%{?dist}
License: (GPLv2 or GPLv3) and GPLv2+ and LGPLv2+ and MIT
Group:   Development/Libraries
URL:     http://poppler.freedesktop.org/
@@ -55,6 +55,10 @@
# https://bugzilla.redhat.com/show_bug.cgi?id=1299492
Patch18: poppler-0.26.5-fix-splash.patch
Patch19: CVE-2017-9776.patch
Patch20: CVE-2017-9775-1.patch
Patch21: CVE-2017-9775-2.patch
Requires: poppler-data >= 0.4.0
BuildRequires: automake libtool
@@ -190,6 +194,9 @@
%patch16 -p1 -b .find-correct-glyph
%patch17 -p1 -b .check-array-length
%patch18 -p1 -b .fix-splash
%patch19 -p1 -b .CVE-2017-9776
%patch20 -p1 -b .CVE-2017-9775-1
%patch21 -p1 -b .CVE-2017-9775-1
# hammer to nuke rpaths, recheck on new releases
autoreconf -i -f
@@ -311,6 +318,9 @@
%changelog
* Fri Aug 18 2016 Caol├ín McNamara <caolanm@redhat.com> - 0.26.5-17
- Resolves: rhbz#1482934 CVE-2017-9776
* Wed Mar  9 2016 Martin Hatina <mhatina@redhat.com> - 0.26.5-16
- Fix crash in Splash
- Resolves: #1299492