diff options
author | Albert Astals Cid <aacid@kde.org> | 2016-06-01 18:37:57 +0200 |
---|---|---|
committer | Albert Astals Cid <aacid@kde.org> | 2016-06-01 18:37:57 +0200 |
commit | 4daee8a8ce40aeb658964a5902ae104549f7af75 (patch) | |
tree | a3b95acea38243b4e9bac20912c3341794f749b9 | |
parent | bc6eb28776feaa302ad93e315798cad02c1e2a54 (diff) |
Fix memory leak when failing to parse thumbs or actions
-rw-r--r-- | poppler/Page.cc | 4 |
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(); } |