summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Astals Cid <aacid@kde.org>2016-06-01 18:37:57 +0200
committerAlbert Astals Cid <aacid@kde.org>2016-06-01 18:37:57 +0200
commit4daee8a8ce40aeb658964a5902ae104549f7af75 (patch)
treea3b95acea38243b4e9bac20912c3341794f749b9
parentbc6eb28776feaa302ad93e315798cad02c1e2a54 (diff)
Fix memory leak when failing to parse thumbs or actions
-rw-r--r--poppler/Page.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/poppler/Page.cc b/poppler/Page.cc
index a4af3405..dca52e4f 100644
--- a/poppler/Page.cc
+++ b/poppler/Page.cc
@@ -15,7 +15,7 @@
//
// Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com>
// Copyright (C) 2005 Jeff Muizelaar <jeff@infidigm.net>
-// Copyright (C) 2005-2013 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005-2013, 2016 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2006-2008 Pino Toscano <pino@kde.org>
// Copyright (C) 2006 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
// Copyright (C) 2006 Scott Turner <scotty1024@mac.com>
@@ -325,6 +325,7 @@ Page::Page(PDFDoc *docA, int numA, Dict *pageDict, Ref pageRefA, PageAttrs *attr
if (!(thumb.isStream() || thumb.isNull() || thumb.isRef())) {
error(errSyntaxError, -1, "Page thumb object (page {0:d}) is wrong type ({1:s})",
num, thumb.getTypeName());
+ thumb.free();
thumb.initNull();
}
@@ -333,6 +334,7 @@ Page::Page(PDFDoc *docA, int numA, Dict *pageDict, Ref pageRefA, PageAttrs *attr
if (!(actions.isDict() || actions.isNull())) {
error(errSyntaxError, -1, "Page additional action object (page {0:d}) is wrong type ({1:s})",
num, actions.getTypeName());
+ actions.free();
actions.initNull();
}