poppler/GfxFont.cc | 8 ++++---- poppler/GfxState.cc | 2 +- poppler/JBIG2Stream.cc | 4 ++-- poppler/PageLabelInfo_p.h | 8 +++++++- poppler/SplashOutputDev.cc | 3 ++- poppler/XRef.cc | 3 ++- splash/Splash.cc | 4 +++- utils/pdfseparate.cc | 4 ++-- 8 files changed, 23 insertions(+), 13 deletions(-)
New commits: commit b8325316e41fb03eb5fac5c80d6a550fe9ce9695 Author: Albert Astals Cid <[email protected]> Date: Sun Apr 6 16:05:51 2014 +0200 Fix memory leak CID #16943 diff --git a/utils/pdfseparate.cc b/utils/pdfseparate.cc index 78dbf12..31dc18c 100644 --- a/utils/pdfseparate.cc +++ b/utils/pdfseparate.cc @@ -5,7 +5,7 @@ // This file is licensed under the GPLv2 or later // // Copyright (C) 2011, 2012 Thomas Freitag <[email protected]> -// Copyright (C) 2012, 2013 Albert Astals Cid <[email protected]> +// Copyright (C) 2012-2014 Albert Astals Cid <[email protected]> // Copyright (C) 2013 Pino Toscano <[email protected]> // Copyright (C) 2013 Daniel Kahn Gillmor <[email protected]> // Copyright (C) 2013 Suzuki Toshiya <[email protected]> @@ -62,7 +62,6 @@ bool extractPages (const char *srcFileName, const char *destFileName) { // by 'A' (random char that is not %), if at the end of replacing // any of the valid appearances there is still any % around, the // pattern is wrong - char *auxDestFileName = strdup(destFileName); if (firstPage == 0 && lastPage == 0) { firstPage = 1; lastPage = doc->getNumPages(); @@ -78,6 +77,7 @@ bool extractPages (const char *srcFileName, const char *destFileName) { return false; } bool foundmatch = false; + char *auxDestFileName = strdup(destFileName); char *p = strstr(auxDestFileName, "%d"); if (p != NULL) { foundmatch = true; commit ca9713118d6ce3fdd245f9ca4f595229a5be19c3 Author: Albert Astals Cid <[email protected]> Date: Sun Apr 6 15:59:43 2014 +0200 Don't check twice for the same variable ^_^ CID #16804 diff --git a/splash/Splash.cc b/splash/Splash.cc index aa46494..8d0765b 100644 --- a/splash/Splash.cc +++ b/splash/Splash.cc @@ -3842,7 +3842,7 @@ SplashError Splash::arbitraryTransformImage(SplashImageSource src, void *srcData scaledWidth = yMax - yMin; scaledHeight = xMax - xMin; } - if (scaledHeight <= 1 || scaledHeight <= 1 || tilingPattern) { + if (scaledHeight <= 1 || scaledWidth <= 1 || tilingPattern) { if (mat[0] >= 0) { t0 = imgCoordMungeUpper(mat[0] + mat[4]) - imgCoordMungeLower(mat[4]); } else { commit 0ef290a7c5a8fa54d3fe0f646abdf098443a7a67 Author: Albert Astals Cid <[email protected]> Date: Sun Apr 6 15:57:38 2014 +0200 Fix memory leak CID #16852 diff --git a/splash/Splash.cc b/splash/Splash.cc index b303cf2..aa46494 100644 --- a/splash/Splash.cc +++ b/splash/Splash.cc @@ -2511,6 +2511,8 @@ SplashError Splash::fillWithPattern(SplashPath *path, GBool eo, delta = (yMinI == yMaxI) ? yMaxFP - yMinFP : xMaxFP - xMinFP; if (delta < 0.2) { opClipRes = splashClipAllOutside; + delete scanner; + delete xPath; return splashOk; } } commit 8810b8917fded340b784873a91ca025b0bb49f3d Author: Albert Astals Cid <[email protected]> Date: Sun Apr 6 15:49:18 2014 +0200 Fix Out-of-bounds read CID #16844 diff --git a/poppler/PageLabelInfo_p.h b/poppler/PageLabelInfo_p.h index d3cd89f..6cd5220 100644 --- a/poppler/PageLabelInfo_p.h +++ b/poppler/PageLabelInfo_p.h @@ -3,7 +3,7 @@ // This file is under the GPLv2 or later license // // Copyright (C) 2005-2006 Kristian Høgsberg <[email protected]> -// Copyright (C) 2005, 2009 Albert Astals Cid <[email protected]> +// Copyright (C) 2005, 2009, 2014 Albert Astals Cid <[email protected]> // Copyright (C) 2011 Simon Kellner <[email protected]> // Copyright (C) 2012 Fabio D'Urso <[email protected]> // @@ -15,6 +15,7 @@ /* http://mathworld.wolfram.com/RomanNumerals.html */ #include "goo/GooString.h" +#include "Error.h" static int fromRoman(const char *buffer) { int digit_value, prev_digit_value, value; @@ -73,6 +74,11 @@ static void toRoman(int number, GooString *str, GBool uppercase) { int i, j, k; const char *wh; + if (number >= 4000) { + error(errUnimplemented, -1, "Conversion to roman numberals of numbers >= 4000 not implemented"); + return; + } + if (uppercase) wh = uppercaseNumerals; else commit 9309907673e8557a25021dce79d9b4354640e2d0 Author: Albert Astals Cid <[email protected]> Date: Sun Apr 6 15:35:00 2014 +0200 Fix memory leak Don't pass new'ed GooStrings as parameters to error() CID #16915 diff --git a/poppler/GfxFont.cc b/poppler/GfxFont.cc index 9eadcc7..5a13eca 100644 --- a/poppler/GfxFont.cc +++ b/poppler/GfxFont.cc @@ -764,8 +764,8 @@ GfxFontLoc *GfxFont::locateFont(XRef *xref, GBool ps) { } substName = new GooString(base14SubstFonts[substIdx]); if (ps) { - error(errSyntaxWarning, -1, "Substituting font '{0:s}' for '{1:t}'", - base14SubstFonts[substIdx], name ? name : new GooString("null")); + error(errSyntaxWarning, -1, "Substituting font '{0:s}' for '{1:s}'", + base14SubstFonts[substIdx], name ? name->getCString() : "null"); fontLoc = new GfxFontLoc(); fontLoc->locType = gfxFontLocResident; fontLoc->fontType = fontType1; @@ -777,8 +777,8 @@ GfxFontLoc *GfxFont::locateFont(XRef *xref, GBool ps) { delete substName; if (path) { if ((fontLoc = getExternalFont(path, gFalse))) { - error(errSyntaxWarning, -1, "Substituting font '{0:s}' for '{1:t}'", - base14SubstFonts[substIdx], (name == NULL) ? new GooString("") : name); + error(errSyntaxWarning, -1, "Substituting font '{0:s}' for '{1:s}'", + base14SubstFonts[substIdx], name ? name->getCString() : ""); name = new GooString(base14SubstFonts[substIdx]); fontLoc->substIdx = substIdx; return fontLoc; commit a511005584a38217fed582ced6ce2c937526cf96 Author: Albert Astals Cid <[email protected]> Date: Sun Apr 6 15:28:50 2014 +0200 Fix Uninitialized pointer read when nFucnsA is 0 CID #16965 diff --git a/poppler/GfxState.cc b/poppler/GfxState.cc index addba68..eb11777 100644 --- a/poppler/GfxState.cc +++ b/poppler/GfxState.cc @@ -3720,7 +3720,7 @@ GfxFunctionShading *GfxFunctionShading::parse(Dict *dict, OutputDev *out, GfxSta dict->lookup("Function", &obj1); if (obj1.isArray()) { nFuncsA = obj1.arrayGetLength(); - if (nFuncsA > gfxColorMaxComps) { + if (nFuncsA > gfxColorMaxComps || nFuncsA <= 0) { error(errSyntaxWarning, -1, "Invalid Function array in shading dictionary"); goto err1; } commit 26b961a64030d91c5db2769dcd0ab8dff7b9b6a6 Author: Albert Astals Cid <[email protected]> Date: Sun Apr 6 15:23:35 2014 +0200 gfree -> delete since it was new'ed CID #16786 diff --git a/poppler/JBIG2Stream.cc b/poppler/JBIG2Stream.cc index e5e9f17..0695dc5 100644 --- a/poppler/JBIG2Stream.cc +++ b/poppler/JBIG2Stream.cc @@ -2290,7 +2290,7 @@ void JBIG2Stream::readTextRegionSeg(Guint segNum, GBool imm, codeTableError: error(errSyntaxError, curStr->getPos(), "Missing code table in JBIG2 text region"); - gfree(codeTables); + delete codeTables; gfree(syms); return; commit 814ac2230b594cce3b871588804dd92f4a187e7e Author: Albert Astals Cid <[email protected]> Date: Sun Apr 6 15:22:13 2014 +0200 delete -> gfree since it was gmaloced CID #16785 diff --git a/poppler/JBIG2Stream.cc b/poppler/JBIG2Stream.cc index 4c55123..e5e9f17 100644 --- a/poppler/JBIG2Stream.cc +++ b/poppler/JBIG2Stream.cc @@ -2291,7 +2291,7 @@ void JBIG2Stream::readTextRegionSeg(Guint segNum, GBool imm, codeTableError: error(errSyntaxError, curStr->getPos(), "Missing code table in JBIG2 text region"); gfree(codeTables); - delete syms; + gfree(syms); return; eofError: commit b496b6665803247b10b018ae939a2a452fa4a48f Author: Albert Astals Cid <[email protected]> Date: Sun Apr 6 15:17:50 2014 +0200 Fix memory leak CID #16864 diff --git a/poppler/SplashOutputDev.cc b/poppler/SplashOutputDev.cc index d0a9454..01979fd 100644 --- a/poppler/SplashOutputDev.cc +++ b/poppler/SplashOutputDev.cc @@ -15,7 +15,7 @@ // // Copyright (C) 2005 Takashi Iwai <[email protected]> // Copyright (C) 2006 Stefan Schweizer <[email protected]> -// Copyright (C) 2006-2013 Albert Astals Cid <[email protected]> +// Copyright (C) 2006-2014 Albert Astals Cid <[email protected]> // Copyright (C) 2006 Krzysztof Kowalczyk <[email protected]> // Copyright (C) 2006 Scott Turner <[email protected]> // Copyright (C) 2007 Koji Otani <[email protected]> @@ -4346,6 +4346,7 @@ GBool SplashOutputDev::gouraudTriangleShadedFill(GfxState *state, GfxGouraudTria setVectorAntialias(vaa); return retVal; } + delete splashShading; return gFalse; } commit 1b612f355e9f29fa93c15a9de1188049a8e086b6 Author: Albert Astals Cid <[email protected]> Date: Sun Apr 6 15:14:50 2014 +0200 Fix memory leak CID #16853 diff --git a/poppler/XRef.cc b/poppler/XRef.cc index 5495b62..2560e3d 100644 --- a/poppler/XRef.cc +++ b/poppler/XRef.cc @@ -15,7 +15,7 @@ // // Copyright (C) 2005 Dan Sheridan <[email protected]> // Copyright (C) 2005 Brad Hards <[email protected]> -// Copyright (C) 2006, 2008, 2010, 2012, 2013 Albert Astals Cid <[email protected]> +// Copyright (C) 2006, 2008, 2010, 2012-2014 Albert Astals Cid <[email protected]> // Copyright (C) 2007-2008 Julien Rebetez <[email protected]> // Copyright (C) 2007 Carlos Garcia Campos <[email protected]> // Copyright (C) 2009, 2010 Ilya Gorenbein <[email protected]> @@ -435,6 +435,7 @@ XRef *XRef::copy() { if (xref->reserve(size) == 0) { error(errSyntaxError, -1, "unable to allocate {0:d} entries", size); + delete xref; return NULL; } xref->size = size;
_______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
