• This makes all integer type conversions that have potential data loss
    explicit with calls that do range checks and raise an exception. After
    this commit, qpdf builds with no warnings when -Wsign-conversion
    -Wconversion is used with gcc or clang or when -W3 -Wd4800 is used
    with MSVC. This significantly reduces the likelihood of potential
    crashes from bogus integer values.
    
    There are some parts of the code that take int when they should take
    size_t or an offset. Such places would make qpdf not support files
    with more than 2^31 of something that usually wouldn't be so large. In
    the event that such a file shows up and is valid, at least qpdf would
    raise an error in the right spot so the issue could be legitimately
    addressed rather than failing in some weird way because of a silent
    overflow condition.
    Jay Berkenbilt authored
     
    Browse File »
  • Change from unsigned long to int since we pass enumerated type values
    to this field.
    Jay Berkenbilt authored
     
    Browse File »
  • Jay Berkenbilt authored
     
    Browse File »






  • Instead of directly putting the contents of the annotation appearance
    streams into the page's content stream, add commands to render the
    form xobjects directly. This is a more robust way to do it than the
    original solution as it works properly with patterns and avoids
    problems with resource name clashes between the pages and the form
    xobjects.
    Jay Berkenbilt authored
     
    Browse File »

















  • When requested, QPDFWriter will do more aggress prechecking of streams
    to make sure it can actually succeed in decoding them before
    attempting to do so. This will allow preservation of raw data even
    when the raw data is corrupted relative to the specified filters.
    Jay Berkenbilt authored
     
    Browse File »
  • QPDFObjectHandle::parseInternal now issues warnings instead of
    throwing exceptions for all error conditions that it finds (except
    internal logic errors) and has stronger recovery for things like
    invalid tokens and malformed dictionaries. This should improve qpdf's
    ability to recover from a wide range of broken files that currently
    cause it to fail.
    Jay Berkenbilt authored
     
    Browse File »