• This is CVE-2017-9210.
    
    The description string for an error message included unparsing an
    object, which is too complex of a thing to try to do while throwing an
    exception. There was only one example of this in the entire codebase,
    so it is not a pervasive problem. Fixing this eliminated one class of
    infinite loop errors.
    Jay Berkenbilt authored
     
    Browse File »









  • Fix exit status for case of errors without warnings, continue after
    errors when possible, add test case for parsing a file with content
    stream errors on some but not all pages.
    Jay Berkenbilt authored
     
    Browse File »





  • Move object parsing code from QPDF to QPDFObjectHandle and
    parameterize the parts of it that are specific to a QPDF object.
    Provide a version that can't handle indirect objects and that can be
    called on an arbitrary string.
    
    A side effect of this change is that the offset used when reporting
    invalid stream length has changed, but since the new value seems like
    a better value than the old one, the test suite has been updated
    rather than making the code backward compatible.  This only effects
    the offset reported for invalid streams that lack /Length or have an
    invalid /Length key.
    
    Updated some test code and exmaples to use QPDFObjectHandle::parse.
    
    Supporting changes include adding a BufferInputSource constructor that
    takes a string.
    Jay Berkenbilt authored
     
    Browse File »



  • QPDFObjectHandle::{new,is,assert}Reserved, QPDF::replaceReserved
    provide a mechanism to add objects to a PDF file when there are
    circular references.  This is a prerequisite to copying objects from
    one PDF to another.
    Jay Berkenbilt authored
     
    Browse File »