poppler/Catalog.cc | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-)
New commits: commit 0ce4da8ab16b4a5497688a6cf86175aaec0f585f Author: Albert Astals Cid <[email protected]> Date: Wed Jul 15 23:59:11 2015 +0200 Make sure pageRootRef is a ref before using it Bug #91344 diff --git a/poppler/Catalog.cc b/poppler/Catalog.cc index 9603024..44a972e 100644 --- a/poppler/Catalog.cc +++ b/poppler/Catalog.cc @@ -828,21 +828,25 @@ int Catalog::getNumPages() error(errSyntaxError, -1, "Pages top-level is a single Page. The document is mal-formed, trying to recover..."); Dict *pageDict = pagesDict.getDict(); - const Ref pageRef = pageRootRef.getRef(); - Page *p = new Page(doc, 1, pageDict, pageRef, new PageAttrs(NULL, pageDict), form); - if (p->isOk()) { - pages = (Page **)gmallocn(1, sizeof(Page *)); - pageRefs = (Ref *)gmallocn(1, sizeof(Ref)); - - pages[0] = p; - pageRefs[0].num = pageRef.num; - pageRefs[0].gen = pageRef.gen; - - numPages = 1; - lastCachedPage = 1; - pagesSize = 1; + if (pageRootRef.isRef()) { + const Ref pageRef = pageRootRef.getRef(); + Page *p = new Page(doc, 1, pageDict, pageRef, new PageAttrs(NULL, pageDict), form); + if (p->isOk()) { + pages = (Page **)gmallocn(1, sizeof(Page *)); + pageRefs = (Ref *)gmallocn(1, sizeof(Ref)); + + pages[0] = p; + pageRefs[0].num = pageRef.num; + pageRefs[0].gen = pageRef.gen; + + numPages = 1; + lastCachedPage = 1; + pagesSize = 1; + } else { + delete p; + numPages = 0; + } } else { - delete p; numPages = 0; } } else { commit b71431513b45f8a1aa4154332dae56af241258f8 Author: Albert Astals Cid <[email protected]> Date: Wed Jul 15 13:10:27 2015 +0200 Typo fix in warning diff --git a/poppler/Catalog.cc b/poppler/Catalog.cc index f75f4e1..9603024 100644 --- a/poppler/Catalog.cc +++ b/poppler/Catalog.cc @@ -825,7 +825,7 @@ int Catalog::getNumPages() Object pageRootRef; catDict.dictLookupNF("Pages", &pageRootRef); - error(errSyntaxError, -1, "Pages top-level is a single Page. The document is mal-formet, trying to recover..."); + error(errSyntaxError, -1, "Pages top-level is a single Page. The document is mal-formed, trying to recover..."); Dict *pageDict = pagesDict.getDict(); const Ref pageRef = pageRootRef.getRef(); _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
