-
Also, add diagnostic messages in qpdf_fuzzer and additional fuzz test case.
-
Fix #1170
-
In PL_DCT add option to limit the size of uncompressed corrupt data
-
In QPDF::read_xrefEntry add buffer overflow test for first eol character. Overlong f1 or f2 entries consisting only of zeros could cause a buffer overflow. Add fuzz testcase 69913.
-
Refine handling of severely damaged files
-
Also, apply limit in dct_fuzzer
-
Also add new fuzz test case.
-
Refactor QPDF::parse_xrefEntry
-
QPDF::processXRefStream
-
A file that has Widget annotations that can't be mapped back to form fields would crash qpdf json.
-
Change the processed Index array to a vector of <first object, number of entries> pairs.
-
Add closure damaged to create damagedPDF exceptions.
-
Tune processing of subsections.
-
Tune pointer arithmetic.
-
Apply temporary fix to deal with fuzz case 68915. (Error is an integer overflow which would immediately cause a runtime error as a result of a call to QInitCQIntC::to_size.)
-
Code failed to allow for QPDF::getCompressibleObjSet deleting objects from the object cache in case of multiple entries for the same object id. Add fuzz test case 68668.
-
Add fuzz case 68377.
-
Tune QPDFWriter
-
Create set without creation of an intermediate vector.
-
Move reading of the entry from read_xrefTable to parse_xrefEntry. Split parse_xrefEntry into two new methods read_xrefEntry and read_bad_xrefEntry. read_xrefEntry is optimised for reading correct entries. To handle incorrect entries it calls read_bad_xrefEntry, which is largely unchanged from parse_xrefEntry.