-
Prior to this fix, if there was a loop detected in following /Prev pointers in xref streams/tables, it would cause qpdf to lose data. Note that this condition causes many PDF readers to hang or fail.
-
This is for testing the release process, particularly as it pertains to AppImage creation.
-
Bump to an alpha release. This version is not being widely released but is being used to push the new shared library version through the debian packaging system and to test out github releases.
-
Give objects descriptions and context so it is possible to issue warnings instead of fatal errors for attempts to access objects of the wrong type.
-
Add options to enable the raw encryption key to be directly shown or specified. Thanks to Didier Stevens <didier.stevens@gmail.com> for the idea and contribution of one implementation of this idea.
-
Tweak the message so that we inform the user that we are mitigating data loss.
-
The latter catches underflow/overflow.
-
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.
-
A stray semicolon caused a condition to be incorrectly applied during stream length recovery.
-
Pushing member variables into a nested class enables addition of new member variables without breaking binary compatibility.
-
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.
-
Bad /W in an xref stream could cause a division by zero error. Now this is handled as a special case.
-
Also accept more errors than before.
-
Eliminate PCRE and find endobj not preceded by endstream. Be more lax about placement of endstream and endobj.
-
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.
-
The code was using 1.0, but we use /FlateDecode, which didn't appear until 1.2.
-
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.