Age | Commit message (Collapse) | Author |
|
There are more to handle, but this resolves an issue already caught by
oss-fuzz.
|
|
|
|
|
|
* [bcc32 Error] QPDF.cc(375): E2268 Call to undefined function 'atof'
Full parser context
QPDF.cc(358): parsing: void QPDF::parse(const char *)
* [bcc32 Error] QPDFTokenizer.cc(183): E2268 Call to undefined function 'strtol'
Full parser context
QPDFTokenizer.cc(163): parsing: void QPDFTokenizer::resolveLiteral()
* [bcc32 Error] pdf-split-pages.cc(52): E2268 Call to undefined function 'exit'
Full parser context
pdf-split-pages.cc(50): parsing: void usage()
* PR #295: Including "cstdlib" should be replaced with "stdlib.h" to be more consistent. At the same time I changed the order of the surrounding includes to reflect alphabetical order, because at some files this already have been the case.
|
|
|
|
Make explicit that copyForeignObject can be used on page objects and
will copy them properly but not update the pages tree.
|
|
|
|
|
|
|
|
|
|
The original QPDF is only required now when the source
QPDFObjectHandle is a stream that gets its stream data from a
QPDFObjectHandle::StreamDataProvider.
|
|
This is in preparation of being able to pipe a stream's data without
keeping a copy of its containing qpdf object.
|
|
Use this instead of QPDF* as a map key for object_copiers.
|
|
|
|
Instead of calling assert for problems found during checking
linearization data, throw an exception which is later caught and
issued as an error. Ideally we would handle errors more robustly, but
this is still a significant improvement.
|
|
On certain operations, such as iterating through all objects and
adding new indirect objects, walk through the entire object structure
and explicitly resolve any indirect references to non-existent
objects. That prevents new objects from springing into existence and
causing the previously dangling references to point to them.
|
|
Thanks to @p-cher for supplying a patch.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|