vcl/source/filter/ipdf/pdfdocument.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
New commits: commit 79e5f8a1f875c169759dc45d93d2b521ec9368f6 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Aug 1 19:25:27 2018 +0100 Commit: Michael Stahl <michael.st...@cib.de> CommitDate: Fri Aug 3 11:11:37 2018 +0200 forcepoint#66 make sure we don't get stuck endlessly reparsing Change-Id: Ie2733e8d7f73e5f6a072604c477e949cd944189a Reviewed-on: https://gerrit.libreoffice.org/58450 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@cib.de> diff --git a/vcl/source/filter/ipdf/pdfdocument.cxx b/vcl/source/filter/ipdf/pdfdocument.cxx index 3d9008a22943..c74bcbbade84 100644 --- a/vcl/source/filter/ipdf/pdfdocument.cxx +++ b/vcl/source/filter/ipdf/pdfdocument.cxx @@ -2212,9 +2212,14 @@ size_t PDFDictionaryElement::Parse(const std::vector<std::unique_ptr<PDFElement> else if (!pDictionary->alreadyParsing()) { // Nested dictionary. - i = PDFDictionaryElement::Parse(rElements, pDictionary, pDictionary->m_aItems); - rDictionary[aName] = pDictionary; - aName.clear(); + const size_t nexti + = PDFDictionaryElement::Parse(rElements, pDictionary, pDictionary->m_aItems); + if (nexti >= i) // ensure we go forwards and not endlessly loop + { + i = nexti; + rDictionary[aName] = pDictionary; + aName.clear(); + } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits