Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-02-21 | Enhance QPDFMatrix API | Jay Berkenbilt | |
2021-02-21 | Fix isPagesObject and isPageObject | Jay Berkenbilt | |
There are lots of things with /Kids that are not pages. Repair the pages tree, then do a reliable check. | |||
2021-02-20 | Allow --rotate=0 | Jay Berkenbilt | |
2021-02-15 | Add QPDFObjectHandle::parse for strings with context | Jay Berkenbilt | |
2021-02-14 | Add functional versions of QPDFObjectHandle::replaceStreamData | Jay Berkenbilt | |
Also fix a bug in checking consistency of length for stream data providers. Length should not be checked or recorded if the provider says it failed to generate the data. | |||
2021-02-13 | QUtil::double_to_string: trim trailing zeroes with option to disable | Jay Berkenbilt | |
2021-01-31 | Improve memory safety of dict/array iterators | Jay Berkenbilt | |
2021-01-30 | Add C++ iterator API around array and dictionary objects | Jay Berkenbilt | |
2021-01-29 | Make QPDFObjectHandle::is* return false for uninitialized objects | Jay Berkenbilt | |
2021-01-17 | Add warn() to QPDF's public API | Jay Berkenbilt | |
2021-01-02 | Make more QPDFPageObjectHelper methods work with form XObject | Jay Berkenbilt | |
2021-01-02 | Bug fix: avoid extraneous pipeline finish calls with multiple contents | Jay Berkenbilt | |
Avoid calling finish() multiple times on the pipeline passed to pipeContentStreams. This commit also fixes a bug in which qpdf was not exiting with the proper exit status if warnings found while splitting pages; this was exposed by a test case that changed. | |||
2021-01-02 | Add several methods for working with form XObjects (fixes #436) | Jay Berkenbilt | |
Make some more methods in QPDFPageObjectHelper work with form XObjects, provide forEach methods to walk through nested form XObjects, possibly recursively. This should make it easier to work with form XObjects from user code. | |||
2021-01-02 | QPDFPageObjectHelper: getPageImages -> getImages | Jay Berkenbilt | |
2021-01-02 | QPDFPageObjectHelper::getPageImages: support form XObjects | Jay Berkenbilt | |
2021-01-01 | Add QPDFObjectHandle::isFormXObject | Jay Berkenbilt | |
2020-12-28 | Add QPDFObjectHandle::setFilterOnWrite | Jay Berkenbilt | |
2020-12-26 | Add QPDFObjectHandle::makeDirect(bool allow_streams) | Jay Berkenbilt | |
2020-11-11 | Treat direct page as runtime rather than logic error (fuzz issue 27393) | Jay Berkenbilt | |
2020-10-23 | Avoid merging adjacent tokens when concatenating contents (fixes #444) | Jay Berkenbilt | |
2020-04-16 | Fix warnings reported by -Wshadow=local (fixes #431) | Jay Berkenbilt | |
2020-04-06 | Allow propagation of errors and retry through StreamDataProvider | Jay Berkenbilt | |
StreamDataProvider::provideStreamData now has a rich enough API for it to effectively proxy to pipeStreamData. | |||
2020-04-04 | Avoid potential segfault in warning methods | Jay Berkenbilt | |
2020-04-03 | Add QPDFObjectHandle::unsafeShallowCopy | Jay Berkenbilt | |
2020-04-03 | Performance: remove Members indirection for QPDFObjectHandle | Jay Berkenbilt | |
2020-03-31 | Refactor QPDFPageObjectHelper::removeUnreferencedResources() | Jay Berkenbilt | |
Refactor removeUnreferencedResources to prepare for filtering form XObjects. | |||
2019-10-22 | Parse Contents in signature dictionary without encryption | Masamichi Hosoda | |
Various PDF digital signing tools do not encrypt /Contents value in signature dictionary. Adobe Acrobat Reader DC can handle a PDF with the /Contents value not encrypted. Write Contents in signature dictionary without encryption Tests ensure that string /Contents are not handled specially when not found in sig dicts. | |||
2019-10-22 | Add QPDFObject::getParsedOffset() | Masamichi Hosoda | |
2019-09-20 | Correct reversed Rectangle coordinates (fixes #363) | Jay Berkenbilt | |
2019-09-20 | Warn for duplicated dictionary keys (fixes #345) | Jay Berkenbilt | |
2019-08-26 | Fix fuzz issue 16301 | Jay Berkenbilt | |
2019-08-23 | Pass offset and length to ParserCallbacks::handleObject | Jay Berkenbilt | |
2019-08-22 | Test for direct, rather than resolved nulls in parser | Jay Berkenbilt | |
Just because we know an indirect reference is null, doesn't mean we shouldn't keep it indirect. | |||
2019-08-22 | Protect against coding error of re-entrant parsing | Jay Berkenbilt | |
2019-08-20 | Handle invalid name tokens symmetrically for PDF < 1.2 (fixes #332) | Jay Berkenbilt | |
2019-08-18 | Shallow copy arrays without removing sparseness | Jay Berkenbilt | |
2019-08-18 | Use SparseOHArray in parsing | Jay Berkenbilt | |
2019-08-18 | Refactor QPDF_Array in preparation for using SparseOHArray | Jay Berkenbilt | |
2019-08-18 | SparseOHArray | Jay Berkenbilt | |
2019-06-25 | Convert some cases of logic_error to runtime_error | Jay Berkenbilt | |
There were a few cases that could be caused by invalid input rather than bugs in the code which were throwing logic_error instead of runtime_error. | |||
2019-06-22 | Add missing #include <cstring> | Jay Berkenbilt | |
2019-06-21 | Fix bugs found by fuzz tests | Jay Berkenbilt | |
* Several assertions in linearization were not always true; change them to run time errors * Handle a few cases of uninitialized objects * Handle pages with no contents when doing form operations * Handle invalid page tree nodes when traversing pages | |||
2019-06-21 | Fix sign and conversion warnings (major) | Jay Berkenbilt | |
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. | |||
2019-06-21 | Change QPDFObjectHandle::pipeStreamData's encode_flags type | Jay Berkenbilt | |
Change from unsigned long to int since we pass enumerated type values to this field. | |||
2019-06-21 | Add new integer accessors to QPDFObjectHandle | Jay Berkenbilt | |
2019-06-15 | Give up reading objects with too many consecutive errors | Jay Berkenbilt | |
2019-04-21 | Tighten isPageObject (fixes #310) | Jay Berkenbilt | |
2019-02-01 | Make inline image token exactly contain the image data | Jay Berkenbilt | |
Do not include the trailing EI, and handle cases where EI is not preceded by a delimiter. Such cases have been seen in the wild. | |||
2019-01-31 | Refactor QPDFTokenizer's inline image handling | Jay Berkenbilt | |
Add a version of expectInlineImage that takes an input source and searches for EI. This is in preparation for improving the way EI is found. This commit just refactors the code without changing the functionality and adds tests to make sure the old and new code behave identically. | |||
2019-01-31 | Inline image token value ends with EI, not delimiter | Jay Berkenbilt | |
The inline image token erroneously included the delimiter that followed EI. The ObjectHandle created from it was correct. |