2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-11-17 01:55:09 +00:00
Commit Graph

220 Commits

Author SHA1 Message Date
Jay Berkenbilt
a11549a566 Detect loops in /Pages structure
Pushing inherited objects to pages and getting all pages were both
prone to stack overflow infinite loops if there were loops in the
Pages dictionary. There is a general weakness in the code in that any
part of the code that traverses the Pages structure would be prone to
this and would have to implement its own loop detection. A more robust
fix may provide some general method for handling the Pages structure,
but it's probably not worth doing.

Note: addition of *Internal2 private functions was done rather than
changing signatures of existing methods to avoid breaking
compatibility.
2015-02-21 19:47:11 -05:00
Jay Berkenbilt
b8b273d14d TODO note on pluggable filters 2013-12-15 10:08:51 -05:00
Jay Berkenbilt
b802ca47e9 Comments about incremental update support
Also remove some trivial, non-functional code.
2013-12-14 15:17:36 -05:00
Jay Berkenbilt
cdff7a4966 Retarget 5.1.0 changes to 5.2.0 2013-12-14 15:17:36 -05:00
Jay Berkenbilt
4229457068 Security: use a secure random number generator
If not available, give an error.  The user may also configure qpdf to
use an insecure random number generator.
2013-10-18 10:45:12 -04:00
Jay Berkenbilt
b9fe85be28 Note about extra hash_V5 calls 2013-07-20 10:18:01 -04:00
Jay Berkenbilt
cee2592ed1 Change API/ABI and withdraw 4.2.0
4.2.0 was binary incompatible in spite of there being no deletions or
changes to any public methods.  As such, we have to bump the ABI and
are fixing some API breakage while we're at it.

Previous 4.3.0 target is now 5.1.0.
2013-07-10 11:30:13 -04:00
Jay Berkenbilt
f31e526d67 Prepare 4.2.0 release 2013-07-07 19:43:16 -04:00
Jay Berkenbilt
b84f57e56d Ignore broken DecodeParms for stream with no filters 2013-07-07 19:43:16 -04:00
Jay Berkenbilt
a2696ac271 Adjust to-do list 2013-07-07 19:43:16 -04:00
Jay Berkenbilt
a1d5a3e916 Retarget some items for 4.2.0 and 4.3.0
Bug fixes for 4.2.0 force additional interfaces, so move most of the
4.2.0 items to 4.3.0.
2013-06-14 21:36:22 -04:00
Jay Berkenbilt
c660f74334 User suggestions from github issues 10 and 11 2013-06-02 16:10:53 -04:00
Jay Berkenbilt
f02c5f5e12 Final preparation for 4.1.0 release 2013-04-14 15:03:51 -04:00
Jay Berkenbilt
eb6f066296 Update 4.2.0 target 2013-04-04 14:13:51 -04:00
Jay Berkenbilt
e8ddac8950 Document casting policy 2013-03-25 14:37:25 -04:00
Jay Berkenbilt
1ec1b12864 Improve idea for corrupted stream handling 2013-03-17 13:16:14 -04:00
Jay Berkenbilt
77a35e0870 Retarget some items for 4.2.0 2013-03-16 22:04:36 -04:00
Jay Berkenbilt
49c7681c58 Windows install: check DLL type
When copying dlls, make sure to only consider DLLs whose type matches
the type of what is loading them.
2013-03-11 14:10:37 -04:00
Jay Berkenbilt
f13558dddb More 4.1.0 TODO items 2013-03-10 20:32:52 -04:00
Jay Berkenbilt
c380fb00d8 Update TODO for 4.1.0
Prepare update for TODO for publication since there is useful
information there for people looking at the repository.
2013-03-07 11:33:09 -05:00
Jay Berkenbilt
1d88955fa6 Added new QPDFObjectHandle types Keyword and InlineImage
These object types are to facilitate content stream parsing.
2013-01-20 15:35:39 -05:00
Jay Berkenbilt
9b3a896aea Remove previously finished item from TODO 2012-12-31 10:32:32 -05:00
Jay Berkenbilt
06c5bac96c Clarify TODO note about crypt filters 2012-12-31 10:32:32 -05:00
Jay Berkenbilt
e57c25814e Support for encryption with /V=5 and /R=5 and /R=6
Read and write support is implemented for /V=5 with /R=5 as well as
/R=6.  /R=5 is the deprecated encryption method used by Acrobat IX.
/R=6 is the encryption method used by PDF 2.0 from ISO 32000-2.
2012-12-31 10:32:32 -05:00
Jay Berkenbilt
93ac1695a4 Support files with only attachments encrypted
Test cases added in a future commit since they depend on /R=6 support.
2012-12-31 10:32:32 -05:00
Jay Berkenbilt
ef23bba4cd Add note in TODO about random number seeding 2012-12-31 10:32:32 -05:00
Jay Berkenbilt
04c203ae06 Eliminate flattenScalarReferences 2012-12-31 05:36:48 -05:00
Jay Berkenbilt
7f84239cad Find PDF header anywhere in the first 1024 bytes 2012-12-25 14:43:37 -05:00
Jay Berkenbilt
bcfc9847be Note about embedded resources 2012-12-25 13:30:17 -05:00
Jay Berkenbilt
a0a3de7775 Leading carriage return enhancement request 2012-12-25 13:30:15 -05:00
Jay Berkenbilt
f256670eba Ignore objects with offset 0 2012-11-20 13:57:37 -05:00
Jay Berkenbilt
8d2b29ef98 Fix segmentation fault with use of QPDFWriter::setOutputMemory 2012-09-06 14:39:06 -04:00
Jay Berkenbilt
b51a5b2c09 Note to fix setOutputMemory bug 2012-09-03 16:51:03 -04:00
Jay Berkenbilt
59432b5c70 Prepare 3.0.1 release 2012-08-11 13:41:18 -04:00
Jay Berkenbilt
3c4110184c Add specially crafted test cases for EOF error
This replaces a PDF from the wild that I didn't want to include in the
test suite but used to verify the original fix.
2012-08-11 12:36:57 -04:00
Jay Berkenbilt
6c820d6cc8 TODO update: bug report, suggestion from issue 2012-08-10 21:20:05 -04:00
Jay Berkenbilt
9d477959c9 Reminder to mention pkg-config files in release notes 2012-08-09 21:22:38 -04:00
Jay Berkenbilt
32051283b9 Fix spelling errors 2012-07-29 14:44:12 -04:00
Jay Berkenbilt
2280c4f6d1 Update documentation and version numbers
3.0.rc1
2012-07-28 22:03:36 -04:00
Jay Berkenbilt
5a02471bb1 Command-line page merging and splitting
Implement --pages ... -- option for qpdf.  Update TODO with remaining
things to document.
2012-07-21 20:33:33 -04:00
Jay Berkenbilt
a50cfefd29 Never mind about large file test change 2012-07-21 11:57:57 -04:00
Jay Berkenbilt
ca97f146f7 Add note about large file test 2012-07-21 09:36:12 -04:00
Jay Berkenbilt
6bbea4baa0 Implement QPDFObjectHandle::parse
Move object parsing code from QPDF to QPDFObjectHandle and
parameterize the parts of it that are specific to a QPDF object.
Provide a version that can't handle indirect objects and that can be
called on an arbitrary string.

A side effect of this change is that the offset used when reporting
invalid stream length has changed, but since the new value seems like
a better value than the old one, the test suite has been updated
rather than making the code backward compatible.  This only effects
the offset reported for invalid streams that lack /Length or have an
invalid /Length key.

Updated some test code and exmaples to use QPDFObjectHandle::parse.

Supporting changes include adding a BufferInputSource constructor that
takes a string.
2012-07-21 09:06:10 -04:00
Jay Berkenbilt
8ea2f8441d TODO notes 2012-07-15 21:27:08 -04:00
Jay Berkenbilt
a101533e0a Add command line option to copy encryption from other file
Add --copy-encryption and --encryption-file-password options to qpdf.
Also strengthen test suite for copying encryption.  The strengthened
test suite would have caught the failure to preserve AES and the
failure to update the file version, which was invalidating the
encrypted data.
2012-07-15 21:15:24 -04:00
Jay Berkenbilt
0575d77d77 Add public QPDFWriter::copyEncryptionParameters
Method to copy encryption parameters from another file.  Adapted from
existing code to copy encryption parameters from the original file.
2012-07-14 09:14:41 -04:00
Jay Berkenbilt
e7b8f297ba Support copying objects from another QPDF object
This includes QPDF::copyForeignObject and supporting foreign objects
as arguments to addPage*.
2012-07-11 15:54:33 -04:00
Jay Berkenbilt
b20e37a2c5 Update TODO 2012-07-08 16:01:27 -04:00
Jay Berkenbilt
e2dedde4bd Don't require stream data provider to know length in advance
Breaking API change: length parameter has disappeared from the
StreamDataProvider version of QPDFObjectHandle::replaceStreamData
since it is no longer necessary to compute it in advance.  This
breaking change is justified by the fact that removing the length
parameter provides the caller an opportunity to simplify the calling
code.
2012-07-07 17:33:45 -04:00
Jay Berkenbilt
a167ce8120 Update ChangeLog and TODO 2012-06-27 10:20:50 -04:00
Jay Berkenbilt
5b4aba20a2 TODO 2012-06-27 06:48:06 -04:00
Jay Berkenbilt
47fe285567 Update TODO 2012-06-24 15:56:59 -04:00
Jay Berkenbilt
8318d81ada Fix and test support for files >= 4 GB 2012-06-24 15:56:50 -04:00
Jay Berkenbilt
ffb96ee17e Add pdf-from-scratch example 2012-06-23 09:05:06 -04:00
Jay Berkenbilt
b6bdc0f595 Add factory methods for creating empty arrays and dictionaries.
Also updated pdf_from_scratch test driver to use the new factories,
and made some cosmetic improvements and documentation updates for the
emptyPDF() method.
2012-06-22 09:46:33 -04:00
Jay Berkenbilt
a0768e4190 Add QPDF::emptyPDF() and pdf_from_scratch test code 2012-06-21 23:09:05 -04:00
Jay Berkenbilt
9eb8c9159b Update TODO file 2012-06-21 21:24:54 -04:00
Jay Berkenbilt
9cdaa76b52 note to add pkg-config 2012-06-21 16:15:09 -04:00
Jay Berkenbilt
ba61c3aef0 Updates to TODO file 2012-06-21 15:04:45 -04:00
Jay Berkenbilt
5d4cad9c02 ABI change: fix use of off_t, size_t, and integer types
Significantly improve the code's use of off_t for file offsets, size_t
for memory sizes, and integer types in cases where there has to be
compatibility with external interfaces.  Rework sections of the code
that would have prevented qpdf from working on files larger than 2 (or
maybe 4) GB in size.
2012-06-20 15:20:26 -04:00
Jay Berkenbilt
92c94e7df2 Add symbol versioning
For ELF systems, turn on versioned symbols by default, and add a
configure option to enable or disable them.
2012-06-20 15:18:12 -04:00
Jay Berkenbilt
a04de932d2 to-do updates for planned work 2012-06-16 20:35:16 -04:00
Jay Berkenbilt
17de39a6a0 notes for portability fixes 2012-05-19 09:23:00 -04:00
Jay Berkenbilt
e3c9512b25 notes on symbol versioning 2012-02-11 12:49:47 -05:00
Jay Berkenbilt
8e9fe21316 Update for 2.3.1 2011-12-28 17:19:40 -05:00
Jay Berkenbilt
5963267b5f Discard stderr from gs when comparing images.
This works around cases where gs falsely complains about things in the
PDF files or gives warnings that don't harm the output.  See comments
in qpdf.test for details.
2011-12-28 14:02:07 -05:00
Jay Berkenbilt
04fe9cc257 *** empty log message *** 2011-12-06 10:58:29 -05:00
Jay Berkenbilt
ee93b24d67 remove remaining 2.3.0 TODO items 2011-08-11 14:50:05 -04:00
Jay Berkenbilt
76b1659177 enhance PointerHolder so that it can explicitly be told to use delete [] instead of delete, thus making it useful to run valgrind over qpdf during its test suite 2011-08-11 11:57:37 -04:00
Jay Berkenbilt
14fe2e6de3 qpdf_set_info_key, qpdf_get_info_key 2011-08-11 10:48:37 -04:00
Jay Berkenbilt
cb0c8ca2fe update release notes and TODO for changes made so far 2011-08-11 08:17:39 -04:00
Jay Berkenbilt
8b0fbfe806 bug description 2011-08-10 17:40:58 -04:00
Jay Berkenbilt
b1a5b7e5d4 include encrypted file bug and associated data 2011-08-02 12:44:37 -04:00
Jay Berkenbilt
7f41a8a0ce more ideas for 2.3 2011-08-02 12:33:39 -04:00
Jay Berkenbilt
d0f4469522 added API change suggestions based on discussions with a helpful user
who asked to remain anonymous
2011-08-02 12:23:47 -04:00
Jay Berkenbilt
9de1f4826b 2.2.4
git-svn-id: svn+q:///qpdf/trunk@1062 71b93d88-0707-0410-a8cf-f5a4172ac649
2011-06-25 18:39:05 +00:00
Jay Berkenbilt
5c44898d57 notes
git-svn-id: svn+q:///qpdf/trunk@1059 71b93d88-0707-0410-a8cf-f5a4172ac649
2011-06-23 18:47:01 +00:00
Jay Berkenbilt
6405d3928f be less conservative when skipping over inline images in content normalization
git-svn-id: svn+q:///qpdf/trunk@1050 71b93d88-0707-0410-a8cf-f5a4172ac649
2011-04-30 18:20:35 +00:00
Jay Berkenbilt
5ccc788b80 doc note
git-svn-id: svn+q:///qpdf/trunk@1048 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-12-27 15:42:48 +00:00
Jay Berkenbilt
48b2b57257 update doc
git-svn-id: svn+q:///qpdf/trunk@1036 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-10-01 11:05:10 +00:00
Jay Berkenbilt
a72ce95c92 setOutputStreams
git-svn-id: svn+q:///qpdf/trunk@1035 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-10-01 11:02:35 +00:00
Jay Berkenbilt
9f444ffef3 add QPDF::processMemoryFile and API additions to support it
git-svn-id: svn+q:///qpdf/trunk@1034 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-10-01 10:20:38 +00:00
Jay Berkenbilt
359999a59c note
git-svn-id: svn+q:///qpdf/trunk@1033 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-09-24 20:47:58 +00:00
Jay Berkenbilt
1dade9a7ee more notes on cout
git-svn-id: svn+q:///qpdf/trunk@1026 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-09-05 15:02:19 +00:00
Jay Berkenbilt
0c1dab0cea *** empty log message ***
git-svn-id: svn+q:///qpdf/trunk@1022 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-15 12:58:47 +00:00
Jay Berkenbilt
adf8c50ccc note
git-svn-id: svn+q:///qpdf/trunk@1020 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-15 00:03:49 +00:00
Jay Berkenbilt
6b4d231245 2.2.0
git-svn-id: svn+q:///qpdf/trunk@1016 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-14 16:43:18 +00:00
Jay Berkenbilt
f9d0f58e90 merge notes
git-svn-id: svn+q:///qpdf/trunk@1011 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-10 02:28:08 +00:00
Jay Berkenbilt
bd7261da9b getRawStreamData()
git-svn-id: svn+q:///qpdf/trunk@1010 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-09 23:33:40 +00:00
Jay Berkenbilt
54303cea9c *** empty log message ***
git-svn-id: svn+q:///qpdf/trunk@1009 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-08 23:54:43 +00:00
Jay Berkenbilt
d6bcad5145 update release notes, TODO
git-svn-id: svn+q:///qpdf/trunk@1005 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-08 21:27:54 +00:00
Jay Berkenbilt
1ff024fafc update version numbers
git-svn-id: svn+q:///qpdf/trunk@1004 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-08 21:19:58 +00:00
Jay Berkenbilt
cf172cf550 some doc updates, shlib version
git-svn-id: svn+q:///qpdf/trunk@1002 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-06 01:38:24 +00:00
Jay Berkenbilt
cb1d89e763 invert images example
git-svn-id: svn+q:///qpdf/trunk@1001 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-06 01:27:47 +00:00
Jay Berkenbilt
81b73bb9e9 notes
git-svn-id: svn+q:///qpdf/trunk@997 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05 21:54:15 +00:00
Jay Berkenbilt
9ba5b27ce4 add double-page-size example
git-svn-id: svn+q:///qpdf/trunk@996 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05 21:51:19 +00:00
Jay Berkenbilt
2dbc1006fb addPageContents
git-svn-id: svn+q:///qpdf/trunk@995 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05 21:06:49 +00:00
Jay Berkenbilt
c292442962 change note
git-svn-id: svn+q:///qpdf/trunk@994 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05 20:33:22 +00:00
Jay Berkenbilt
9a8f6b8c2d move note
git-svn-id: svn+q:///qpdf/trunk@993 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05 20:26:09 +00:00
Jay Berkenbilt
11df7809af add pipeline-based stream data replacement function
git-svn-id: svn+q:///qpdf/trunk@990 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05 19:04:22 +00:00