[poppler] 4 commits - poppler/Annot.cc poppler/JBIG2Stream.cc poppler/SplashOutputDev.cc
Albert Astals Cid
aacid at kemper.freedesktop.org
Thu Sep 24 15:46:12 PDT 2015
poppler/Annot.cc | 7 +++++--
poppler/JBIG2Stream.cc | 11 ++++++++---
poppler/SplashOutputDev.cc | 6 ++++++
3 files changed, 19 insertions(+), 5 deletions(-)
New commits:
commit fd49b3d4ecdbe04c4f51e6ab77687dc25bbc3f49
Author: Albert Astals Cid <aacid at kde.org>
Date: Fri Sep 25 00:45:55 2015 +0200
Fix crash on Annot::layoutText for malformed documents
diff --git a/poppler/Annot.cc b/poppler/Annot.cc
index 29f3621..f3f479c 100644
--- a/poppler/Annot.cc
+++ b/poppler/Annot.cc
@@ -4052,6 +4052,9 @@ void Annot::layoutText(GooString *text, GooString *outBuf, int *i,
double w = 0.0;
int uLen, n;
double dx, dy, ox, oy;
+ if (!text) {
+ return;
+ }
GBool unicode = text->hasUnicodeMarker();
GBool spacePrev; // previous character was a space
commit a88be71fee8a4fd8e9a5a1d9d955addc0f3076ea
Author: Albert Astals Cid <aacid at kde.org>
Date: Fri Sep 25 00:42:14 2015 +0200
Fix crash in SplashOutputDev::beginTransparencyGroup in malformed file
diff --git a/poppler/SplashOutputDev.cc b/poppler/SplashOutputDev.cc
index 7759382..d19c25d 100644
--- a/poppler/SplashOutputDev.cc
+++ b/poppler/SplashOutputDev.cc
@@ -4091,6 +4091,12 @@ void SplashOutputDev::beginTransparencyGroup(GfxState *state, double *bbox,
// create the temporary bitmap
bitmap = new SplashBitmap(w, h, bitmapRowPad, colorMode, gTrue,
bitmapTopDown, bitmap->getSeparationList());
+ if (!bitmap->getDataPtr()) {
+ delete bitmap;
+ w = h = 1;
+ bitmap = new SplashBitmap(w, h, bitmapRowPad, colorMode,
+ colorMode != splashModeMono1, bitmapTopDown);
+ }
splash = new Splash(bitmap, vectorAntialias,
transpGroup->origSplash->getScreen());
if (transpGroup->next != NULL && transpGroup->next->knockout) {
commit 0fa5c17ea409c3fdfe1e3a97ff5e4bae96da1cae
Author: Albert Astals Cid <aacid at kde.org>
Date: Fri Sep 25 00:36:33 2015 +0200
Fix crash on JBIG2Stream::readHalftoneRegionSeg for malformed documents
diff --git a/poppler/JBIG2Stream.cc b/poppler/JBIG2Stream.cc
index 66c1d25..a20c220 100644
--- a/poppler/JBIG2Stream.cc
+++ b/poppler/JBIG2Stream.cc
@@ -15,7 +15,7 @@
//
// Copyright (C) 2006 Raj Kumar <rkumar at archive.org>
// Copyright (C) 2006 Paul Walmsley <paul at booyaka.com>
-// Copyright (C) 2006-2010, 2012, 2014 Albert Astals Cid <aacid at kde.org>
+// Copyright (C) 2006-2010, 2012, 2014, 2015 Albert Astals Cid <aacid at kde.org>
// Copyright (C) 2009 David Benjamin <davidben at mit.edu>
// Copyright (C) 2011 Edward Jiang <ejiang at google.com>
// Copyright (C) 2012 William Bader <williambader at hotmail.com>
@@ -2701,8 +2701,13 @@ void JBIG2Stream::readHalftoneRegionSeg(Guint segNum, GBool imm,
i >>= 1;
}
}
- patW = patternDict->getBitmap(0)->getWidth();
- patH = patternDict->getBitmap(0)->getHeight();
+ patternBitmap = patternDict->getBitmap(0);
+ if (unlikely(patternBitmap == NULL)) {
+ error(errSyntaxError, curStr->getPos(), "Bad pattern bitmap");
+ return;
+ }
+ patW = patternBitmap->getWidth();
+ patH = patternBitmap->getHeight();
// set up the arithmetic decoder
if (!mmr) {
commit 942adfc25e7a00ac3cf032ced2d8949e99099f70
Author: Albert Astals Cid <aacid at kde.org>
Date: Fri Sep 25 00:30:58 2015 +0200
Fix crash on AnnotInk::draw for malformed documents
diff --git a/poppler/Annot.cc b/poppler/Annot.cc
index 85a8ac4..29f3621 100644
--- a/poppler/Annot.cc
+++ b/poppler/Annot.cc
@@ -15,7 +15,7 @@
//
// Copyright (C) 2006 Scott Turner <scotty1024 at mac.com>
// Copyright (C) 2007, 2008 Julien Rebetez <julienr at svn.gnome.org>
-// Copyright (C) 2007-2013 Albert Astals Cid <aacid at kde.org>
+// Copyright (C) 2007-2013, 2015 Albert Astals Cid <aacid at kde.org>
// Copyright (C) 2007-2013 Carlos Garcia Campos <carlosgc at gnome.org>
// Copyright (C) 2007, 2008 Iñigo Martínez <inigomartinez at gmail.com>
// Copyright (C) 2007 Jeff Muizelaar <jeff at infidigm.net>
@@ -6151,7 +6151,7 @@ void AnnotInk::draw(Gfx *gfx, GBool printing) {
for (int i = 0; i < inkListLength; ++i) {
const AnnotPath * path = inkList[i];
- if (path->getCoordsLength() != 0) {
+ if (path && path->getCoordsLength() != 0) {
appearBuf->appendf ("{0:.2f} {1:.2f} m\n", path->getX(0) - rect->x1, path->getY(0) - rect->y1);
appearBBox->extendTo (path->getX(0) - rect->x1, path->getY(0) - rect->y1);
More information about the poppler
mailing list