-
Also, when recovering trailer from xref streams, pick the last valid trailer encountered rather than the first.
-
Change first xref stream dictionary to point to an invalid root in order to detect failure to recover the last valid trailer.
-
In FUTURE, treat uninitialized object handles as null
-
Adjust fuzzer Pl_Flate memory limits
-
Fixes fuzz issue 71689.
-
Change the return type to a std::pair<bool, QPDFObjectHandle> in order to allow a default constructed object handle (which is currently returned to indicate failure) to become a valid object.
-
Fix handling of hybrid reference files in QPDF::read_xrefTable
-
Fix #1242
-
Fix QPDF::recoverStreamLength
-
Tidy QPDF_Stream
-
Replace some std::shared_ptr parameters with reference parameters
-
Ensure QPDF m->all_pages and invalid_page_found are reset if getAllPagesInternal throws an exception. Fixes fuzz case 71624.
-
Refactor ObjTable
-
1. Make class final 2. Pass og parameter by value 3. Properly initialize qpdf and og Also, tweak QPDF::replaceObject to allow stream replacement without violating the requirement that streams must always be indirect objects. Also, remove QPDF::reserveStream as it does not do what the name implies and having this as a separate methods does not aid code readability.
-
Split qpdf_fuzzer into six separate fuzzers
-
Given that the PDF spec requires the xref table to contain entries for all object ids <= the maximum id present in a PDF document, max_size is a qpdf implementation limitation for legitimate object ids.
-
Refactor QPDFObjectHandle::getTypeName
-
In qpdf_fuzzer and dct_fuzzer add a scan limit for Pl_DCT
-
In QPDF::readObjectAtOffset fail early on 'expect n n obj'
-
Refactor Pl_QPDFTokenizer
-
Ensure the the recovered stream end is not part of a different object. Test file is bad24.pdf with stream 4 'endstream' corrupted.