summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-text/poppler/files/poppler-0.57.0-CVE-2017-14617.patch')
-rw-r--r--app-text/poppler/files/poppler-0.57.0-CVE-2017-14617.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/app-text/poppler/files/poppler-0.57.0-CVE-2017-14617.patch b/app-text/poppler/files/poppler-0.57.0-CVE-2017-14617.patch
new file mode 100644
index 000000000000..279479536129
--- /dev/null
+++ b/app-text/poppler/files/poppler-0.57.0-CVE-2017-14617.patch
@@ -0,0 +1,31 @@
+From 939465c40902d72e0c05d4f3a27ee67e4a007ed7 Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid@kde.org>
+Date: Tue, 19 Sep 2017 21:19:03 +0200
+Subject: [PATCH] Fix crash in broken files
+
+Bug #102854
+---
+ poppler/Stream.cc | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/poppler/Stream.cc b/poppler/Stream.cc
+index f4eda85b..0ad602c7 100644
+--- a/poppler/Stream.cc
++++ b/poppler/Stream.cc
+@@ -454,11 +454,10 @@ ImageStream::ImageStream(Stream *strA, int widthA, int nCompsA, int nBitsA) {
+ } else {
+ imgLineSize = nVals;
+ }
+- if (width > INT_MAX / nComps) {
+- // force a call to gmallocn(-1,...), which will throw an exception
++ if (nComps <= 0 || width > INT_MAX / nComps) {
+ imgLineSize = -1;
+ }
+- imgLine = (Guchar *)gmallocn(imgLineSize, sizeof(Guchar));
++ imgLine = (Guchar *)gmallocn_checkoverflow(imgLineSize, sizeof(Guchar));
+ }
+ imgIdx = nVals;
+ }
+--
+2.14.1
+