-
Move methods responsible for loading or keeping track of objects to QPDF_objects.cc.
-
Add new protected inline method Pipeline::next
-
Also, tidy pipeline constructors and make subclasses final where possible.
-
Add additional xref and object stream sanity checks
-
Tweak #1287 comments
-
Add C API qpdf_oh_free_buffer to release memory allocated by stream data functions
-
Add new commands --remove-metadata and --remove-info
-
In QPDFWordTokenFinder::check limit the token length
-
Tokens longer than the target cannot be a match and therefore there is no need to read to the end of token.
-
Fix bugs found during fuzzing
-
Return results rather than using reference parameters. Fixes bug in #1272 where parameters were not reinitialized when calling read_bad_entry from read_entry.
-
In QPDFParser add a limit on total number of errors in one object
-
Currently, QPDFParser gives up attempting to parse an object if 5 near-consecutive bad tokens are encountered. Add a limit of a total of 15 bad tokens in a single object before giving up.
-
Refactor QPDF xref table
-
Also, delay adjustments for compressed objects until needed by linearization checks.
-
Optimistically read subsection headers without reading individual object entries, assuming that they are 20 bytes long as per the PDF spec. If problems are encountered, fall back to calling bad_subsections.
-
Replace QPDFXRefEntry with a std::variant of structs.