Logo white

OpenSystemsDevelopment / qpdf

Sign in
  • Sign in
  • Project
  • Files
  • Commits
  • Network
  • Graphs
  • Milestones
  • Issues 0
  • Merge Requests 0
  • Labels
  • Wiki
  • Commits 4,691
  • Compare
  • Branches 1
  • Tags 0
  • qpdf
  • libqpdf
  • QPDF.cc
25 Aug, 2017
1 commit
  • Detect xref pointer infinite loop (fixes #149)
    85f05cc5
    Jay Berkenbilt authored
    2017-08-25 19:58:31 -0400  
    Browse File »

22 Aug, 2017
3 commits
  • Bump soname to 18 and version to 7.0.b1
    1e52d338
    Jay Berkenbilt authored
    2017-08-22 16:50:48 -0400  
    Browse File »
  • Limit token length during xref recovery ...
    fabff0f3
    While scanning the file looking for objects, limit the length of
    tokens we allow. This prevents us from getting caught up in reading a
    file character by character while digging through large streams.
    Jay Berkenbilt authored
    2017-08-22 14:13:10 -0400  
    Browse File »
  • Fix logic error in recovery ...
    6884ad2e
    A stray semicolon caused a condition to be incorrectly applied during
    stream length recovery.
    Jay Berkenbilt authored
    2017-08-22 07:19:41 -0400  
    Browse File »

21 Aug, 2017
2 commits
  • Push QPDF member variables into a nested class ...
    a8c93bd3
    Pushing member variables into a nested class enables addition of new
    member variables without breaking binary compatibility.
    Jay Berkenbilt authored
    2017-08-21 21:35:11 -0400  
    Browse File »
  • Enable finer grained control of stream decoding ...
    9744414c
    This commit adds several API methods that enable control over which
    types of filters QPDF will attempt to decode. It also adds support for
    /RunLengthDecode and /DCTDecode filters for both encoding and
    decoding.
    Jay Berkenbilt authored
    2017-08-21 17:44:22 -0400  
    Browse File »

11 Aug, 2017
1 commit
  • Prevent a division by zero error (fixes #141) ...
    46611f07
    Bad /W in an xref stream could cause a division by zero error. Now
    this is handled as a special case.
    Jay Berkenbilt authored
    2017-08-11 20:11:19 -0400  
    Browse File »

10 Aug, 2017
7 commits
  • Read xref table without PCRE ...
    30f109e2
    Also accept more errors than before.
    Jay Berkenbilt authored
    2017-08-10 21:30:32 -0400  
    Browse File »
  • Reconstruct xref without PCRE
    98a843c2
    Jay Berkenbilt authored
    2017-08-10 21:30:32 -0400  
    Browse File »
  • Improve stream length recovery ...
    ca5b1d26
    Eliminate PCRE and find endobj not preceded by endstream. Be more lax
    about placement of endstream and endobj.
    Jay Berkenbilt authored
    2017-08-10 21:30:32 -0400  
    Browse File »
  • Find xref without PCRE
    3082e4e6
    Jay Berkenbilt authored
    2017-08-10 21:30:32 -0400  
    Browse File »
  • Find starxref without PCRE
    03aa9679
    Jay Berkenbilt authored
    2017-08-10 21:30:32 -0400  
    Browse File »
  • Find header without PCRE
    1765c6ec
    Jay Berkenbilt authored
    2017-08-10 21:30:32 -0400  
    Browse File »
  • Allow QPDFTokenizer::readToken to return bad tokens ...
    ef8ae544
    Sometimes we want to ignore bad tokens rather than having them throw
    an exception. A coverage case is commented out here and added in a
    later commit.
    Jay Berkenbilt authored
    2017-08-10 19:01:41 -0400  
    Browse File »

29 Jul, 2017
5 commits
  • Catch more exceptions while resolving objects
    570db9b6
    Jay Berkenbilt authored
    2017-07-29 19:31:12 -0400  
    Browse File »
  • When recover stream length, indicate the length (fixes #44)
    b43a0ac2
    Jay Berkenbilt authored
    2017-07-29 19:15:06 -0400  
    Browse File »
  • Handle zlib data errors better (fixes #106)
    6a7d53ad
    Jay Berkenbilt authored
    2017-07-29 12:19:04 -0400  
    Browse File »
  • Better recovery of bad stream start (fixes #104)
    07d6f770
    Jay Berkenbilt authored
    2017-07-29 12:19:04 -0400  
    Browse File »
  • Use 1.2 as the version if we can't read it from the header ...
    ba2bae4a
    The code was using 1.0, but we use /FlateDecode, which didn't appear
    until 1.2.
    Jay Berkenbilt authored
    2017-07-29 12:19:04 -0400  
    Browse File »

28 Jul, 2017
2 commits
  • Add option to preserve unreferenced objects
    3a1ff5de
    Jay Berkenbilt authored
    2017-07-28 19:19:11 -0400  
    Browse File »
  • Explicitly check root dictionary type ...
    a94a729f
    Very badly corrupted files may not have a retrievable root dictionary.
    Handle that as a special case so that a more helpful error message can
    be provided.
    Jay Berkenbilt authored
    2017-07-28 18:03:30 -0400  
    Browse File »

27 Jul, 2017
3 commits
  • Add precheck streams capability ...
    7f889252
    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
    2017-07-27 23:42:27 -0400  
    Browse File »
  • Convert many more errors to warnings
    428d96df
    Jay Berkenbilt authored
    2017-07-27 22:57:55 -0400  
    Browse File »
  • Convert object parsing errors to warnings ...
    40f00122
    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
    2017-07-27 18:20:31 -0400  
    Browse File »

26 Jul, 2017
3 commits
  • Detect recursion loops resolving objects (fixes #51) ...
    701b518d
    During parsing of an object, sometimes parts of the object have to be
    resolved. An example is stream lengths. If such an object directly or
    indirectly points to the object being parsed, it can cause an infinite
    loop. Guard against all cases of re-entrant resolution of objects.
    Jay Berkenbilt authored
    2017-07-26 06:24:07 -0400  
    Browse File »
  • Handle object ID 0 (fixes #99) ...
    afe0242b
    This is CVE-2017-9208.
    
    The QPDF library uses object ID 0 internally as a sentinel to
    represent a direct object, but prior to this fix, was not blocking
    handling of 0 0 obj or 0 0 R as a special case. Creating an object in
    the file with 0 0 obj could cause various infinite loops. The PDF spec
    doesn't allow for object 0. Having qpdf handle object 0 might be a
    better fix, but changing all the places in the code that assumes objid
    == 0 means direct would be risky.
    Jay Berkenbilt authored
    2017-07-26 06:24:07 -0400  
    Browse File »
  • Avoid xref reconstruction infinite loop (fixes #100) ...
    315092dd
    This is CVE-2017-9209.
    Jay Berkenbilt authored
    2017-07-26 06:24:07 -0400  
    Browse File »

10 Nov, 2015
1 commit
  • Prepare 6.0.0 release
    b7302a9b
    Jay Berkenbilt authored
    2015-11-10 12:48:52 -0500  
    Browse File »

01 Nov, 2015
1 commit
  • Prepare 5.2.0 release
    e5abc789
    Jay Berkenbilt authored
    2015-11-01 16:40:01 -0500  
    Browse File »

31 Oct, 2015
2 commits
  • Tolerate some mangled xref tables ...
    b62cbe25
    If xref table entries lack the spec-required trailing whitespace or
    contain a small amount of extra space, handle them anyway.
    Jay Berkenbilt authored
    2015-10-31 18:56:43 -0400  
    Browse File »
  • Remove trailing whitespace
    f0b85a1e
    Jay Berkenbilt authored
    2015-10-31 18:56:43 -0400  
    Browse File »

24 May, 2015
1 commit
  • Prepare 5.1.3 release
    94e55394
    Jay Berkenbilt authored
    2015-05-24 17:26:49 -0400  
    Browse File »

07 Jun, 2014
1 commit
  • Prepare 5.1.2 release
    4071db59
    Jay Berkenbilt authored
    2014-06-07 17:16:52 -0400  
    Browse File »

14 Jan, 2014
1 commit
  • Prepare 5.1.1 release
    247d70ef
    Jay Berkenbilt authored
    2014-01-14 15:45:35 -0500  
    Browse File »

26 Dec, 2013
1 commit
  • Avoid traversing same object twice when copying objects ...
    c9a9fe9c
    This is a performance fix.  The output is unchanged.
    
    Fixes #28.
    Jay Berkenbilt authored
    2013-12-26 11:51:50 -0500  
    Browse File »

17 Dec, 2013
1 commit
  • Prepare 5.1.0 release
    0b612755
    Jay Berkenbilt authored
    2013-12-17 15:26:07 -0500  
    Browse File »

14 Dec, 2013
1 commit
  • Allow arbitrary whitespace, not just newline, after xref ...
    e9a319fb
    Fixes #27.
    Jay Berkenbilt authored
    2013-12-14 15:17:23 -0500  
    Browse File »

29 Nov, 2013
1 commit
  • Include <algorithm> for std::min, std::max
    dc9df974
    Jay Berkenbilt authored
    2013-11-29 10:48:16 -0500  
    Browse File »

18 Oct, 2013
2 commits
  • Prepare for 5.0.1 release
    e1bd72b4
    Jay Berkenbilt authored
    2013-10-18 13:51:30 -0400  
    Browse File »
  • Security: replace operator[] with at ...
    ac9c1f0d
    For std::string and std::vector, replace operator[] with at.  This was
    done using an automated process.  See README.hardening for details.
    Jay Berkenbilt authored
    2013-10-18 10:45:14 -0400  
    Browse File »