poppler/PDFDoc.cc | 6 +++++- utils/pdfdetach.cc | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-)
New commits: commit ee4a389872d86b619c677888da8f13f1f6c54472 Author: Adrian Johnson <[email protected]> Date: Mon Oct 20 22:32:30 2014 +1030 PDFDoc: fix crash when getPage() returns NULL Bug 85235 diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc index d1b5d7b..8fd5e18 100644 --- a/poppler/PDFDoc.cc +++ b/poppler/PDFDoc.cc @@ -626,7 +626,7 @@ int PDFDoc::savePageAs(GooString *name, int pageNo) int keyLength; xref->getEncryptionParameters(&fileKey, &encAlgorithm, &keyLength); - if (pageNo < 1 || pageNo > getNumPages()) { + if (pageNo < 1 || pageNo > getNumPages() || !getCatalog()->getPage(pageNo)) { error(errInternal, -1, "Illegal pageNo: {0:d}({1:d})", pageNo, getNumPages() ); return errOpenFile; } commit 0c3f53e34ec287dab2784e1f3411ad06b62dffc7 Author: Adrian Johnson <[email protected]> Date: Mon Oct 20 22:17:20 2014 +1030 PDFDOC: Check for EOF when reading raw stream Bug 85233 diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc index f8ac85d..d1b5d7b 100644 --- a/poppler/PDFDoc.cc +++ b/poppler/PDFDoc.cc @@ -1039,6 +1039,10 @@ void PDFDoc::writeRawStream (Stream* str, OutStream* outStr) str->unfilteredReset(); for (Goffset i = 0; i < length; i++) { int c = str->getUnfilteredChar(); + if (unlikely(c == EOF)) { + error (errSyntaxError, -1, "PDFDoc::writeRawStream: EOF reading stream"); + break; + } outStr->printf("%c", c); } str->reset(); commit 88dbd4df0998233939b4a51cedbfc65c58a315f9 Author: Adrian Johnson <[email protected]> Date: Sun Oct 19 22:47:15 2014 +1030 pdfdetach: fix crash when getPage() returns null Bug 85145 diff --git a/utils/pdfdetach.cc b/utils/pdfdetach.cc index 4f67fd7..3bae3c0 100644 --- a/utils/pdfdetach.cc +++ b/utils/pdfdetach.cc @@ -163,6 +163,8 @@ int main(int argc, char *argv[]) { nPages = doc->getCatalog()->getNumPages(); for (i = 0; i < nPages; ++i) { page = doc->getCatalog()->getPage(i + 1); + if (!page) + continue; annots = page->getAnnots(); if (!annots) break; _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
