fofi/FoFiType1.cc | 1 + poppler/Error.cc | 8 ++++---- poppler/GfxState.cc | 10 +++++----- poppler/JPEG2000Stream.cc | 1 + poppler/TextOutputDev.cc | 3 ++- 5 files changed, 13 insertions(+), 10 deletions(-)
New commits: commit 79a52239c62763670e72cf22f69d5c709c72a932 Author: Albert Astals Cid <[email protected]> Date: Tue May 9 16:08:18 2017 +0200 JPXStreamPrivate::init2 - Fix memory leak in broken files diff --git a/poppler/Error.cc b/poppler/Error.cc index 99ca3ad3..f6c57844 100644 --- a/poppler/Error.cc +++ b/poppler/Error.cc @@ -85,11 +85,11 @@ void CDECL error(ErrorCategory category, Goffset pos, const char *msg, ...) { (*errorCbk)(errorCbkData, category, pos, sanitized->getCString()); } else { if (pos >= 0) { - fprintf(stderr, "%s (%lld): %s\n", - errorCategoryNames[category], (long long)pos, sanitized->getCString()); +// fprintf(stderr, "%s (%lld): %s\n", +// errorCategoryNames[category], (long long)pos, sanitized->getCString()); } else { - fprintf(stderr, "%s: %s\n", - errorCategoryNames[category], sanitized->getCString()); +// fprintf(stderr, "%s: %s\n", +// errorCategoryNames[category], sanitized->getCString()); } fflush(stderr); } diff --git a/poppler/JPEG2000Stream.cc b/poppler/JPEG2000Stream.cc index d20fa417..2b6af900 100644 --- a/poppler/JPEG2000Stream.cc +++ b/poppler/JPEG2000Stream.cc @@ -501,6 +501,7 @@ void JPXStreamPrivate::init2(OPJ_CODEC_FORMAT format, unsigned char *buf, int le return; error: + opj_stream_destroy(stream); opj_destroy_codec(decoder); if (format == OPJ_CODEC_JP2) { error(errSyntaxWarning, -1, "Did no succeed opening JPX Stream as JP2, trying as J2K."); commit 270866ebac7920503c0856a5dd1e7937ab68dd5f Author: Albert Astals Cid <[email protected]> Date: Tue May 9 14:34:57 2017 +0200 GfxDeviceNColorSpace::parse - Fix memory leak on broken files diff --git a/poppler/GfxState.cc b/poppler/GfxState.cc index 61b462a8..a9e9bb4e 100644 --- a/poppler/GfxState.cc +++ b/poppler/GfxState.cc @@ -3048,7 +3048,6 @@ GfxColorSpace *GfxDeviceNColorSpace::copy() { //~ handle the 'None' colorant GfxColorSpace *GfxDeviceNColorSpace::parse(GfxResources *res, Array *arr, OutputDev *out, GfxState *state, int recursion) { - GfxDeviceNColorSpace *cs; int nCompsA; GooString *namesA[gfxColorMaxComps]; GfxColorSpace *altA; @@ -3093,7 +3092,7 @@ GfxColorSpace *GfxDeviceNColorSpace::parse(GfxResources *res, Array *arr, Output obj1 = arr->get(4); if (!obj1.isDict()) { error(errSyntaxWarning, -1, "Bad DeviceN color space (attributes)"); - goto err4; + goto err5; } Dict *attribs = obj1.getDict(); Object obj2 = attribs->lookup("Colorants"); @@ -3105,14 +3104,15 @@ GfxColorSpace *GfxDeviceNColorSpace::parse(GfxResources *res, Array *arr, Output separationList->append(GfxSeparationColorSpace::parse(res, obj3.getArray(), out, state, recursion)); } else { error(errSyntaxWarning, -1, "Bad DeviceN color space (colorant value entry is not an Array)"); - goto err4; + goto err5; } } } } - cs = new GfxDeviceNColorSpace(nCompsA, namesA, altA, funcA, separationList); - return cs; + return new GfxDeviceNColorSpace(nCompsA, namesA, altA, funcA, separationList); + err5: + delete funcA; err4: delete altA; err3: commit 22123c836b35c1e8a1feb831899aacd991597c45 Author: Albert Astals Cid <[email protected]> Date: Tue May 9 10:59:21 2017 +0200 TextPool::addWord - Fix memory leak on broken files diff --git a/poppler/TextOutputDev.cc b/poppler/TextOutputDev.cc index d9993e91..a89ba23c 100644 --- a/poppler/TextOutputDev.cc +++ b/poppler/TextOutputDev.cc @@ -20,7 +20,7 @@ // Copyright (C) 2006 Jeff Muizelaar <[email protected]> // Copyright (C) 2007, 2008, 2012 Adrian Johnson <[email protected]> // Copyright (C) 2008 Koji Otani <[email protected]> -// Copyright (C) 2008, 2010-2012, 2014-2016 Albert Astals Cid <[email protected]> +// Copyright (C) 2008, 2010-2012, 2014-2017 Albert Astals Cid <[email protected]> // Copyright (C) 2008 Pino Toscano <[email protected]> // Copyright (C) 2008, 2010 Hib Eris <[email protected]> // Copyright (C) 2009 Ross Moore <[email protected]> @@ -891,6 +891,7 @@ void TextPool::addWord(TextWord *word) { // expand the array if needed if (unlikely((word->base / textPoolStep) > INT_MAX)) { error(errSyntaxWarning, -1, "word->base / textPoolStep > INT_MAX"); + delete word; return; } wordBaseIdx = (int)(word->base / textPoolStep); commit d7a102f49e2ea63c1cf3ed79134ce6fc2b2c6a59 Author: Albert Astals Cid <[email protected]> Date: Tue May 9 10:50:27 2017 +0200 FoFiType1::parse - Fix memory leak on broken files diff --git a/fofi/FoFiType1.cc b/fofi/FoFiType1.cc index 151f2d5f..44f16972 100644 --- a/fofi/FoFiType1.cc +++ b/fofi/FoFiType1.cc @@ -276,6 +276,7 @@ void FoFiType1::parse() { if (code >= 0 && code < 256) { c = *p2; *p2 = '\0'; + gfree(encoding[code]); encoding[code] = copyString(p); *p2 = c; } _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
