• After xref reconstruction treat the input file as suspect and apply sanity checks to all subsequent object reads.
    
    Remove `in_xref_reconstruction` flag and update references to use `reconstructed_xref` for simplified state management during xref processing. Adjust warnings for invalid dictionary keys in test output.
    m-holger authored
     
    Browse File »


  • When validating the pages tree after xref recovery do not tree dictionaries
    as page objects if more than 2 of the following are true:
    
    - the dictionary is direct
    - the /Type entry is missing or is not /Page
    - the dictionary does not contain a valid /Parent entry
    - the dictionary does not contain or inherit a valid /MediaBox
    - the dictionary does not contain or inherit a /Resources dictionary
    
    Such dictionaries are very unlikely to be page objects and trying to
    process them may cause excessive run time and memory usage.
    m-holger authored
     
    Browse File »










  • Ensure QPDF m->all_pages and invalid_page_found are reset if
    getAllPagesInternal throws an exception.
    
    Fixes fuzz case 71624.
    m-holger authored
     
    Browse File »

















  • Where not possible, use "auto" to get the iterator type.
    
    Editorial note: I have avoid this change for a long time because of
    not wanting to make gratuitous changes to version history, which can
    obscure when certain changes were made, but with having recently
    touched every single file to apply automatic code formatting and with
    making several broad changes to the API, I decided it was time to take
    the plunge and get rid of the older (pre-C++11) verbose iterator
    syntax. The new code is just easier to read and understand, and in
    many cases, it will be more effecient as fewer temporary copies are
    being made.
    
    m-holger, if you're reading, you can see that I've finally come
    around. :-)
    Jay Berkenbilt authored
     
    Browse File »