Jay Berkenbilt
750aca5b94
First increment of improving handling of weak crypto ( fixes #358 )
2021-11-11 12:24:15 -05:00
Jay Berkenbilt
5eac6c500c
TODO: update fuzz case information
2021-11-04 14:03:24 -04:00
Jay Berkenbilt
a6b0e832a9
TODO: documentation suggestion
2021-09-10 10:52:21 -04:00
Jay Berkenbilt
30ac51bc78
Exclude unreferenced objects in object streams ( fixes #520 )
2021-05-08 09:42:09 -04:00
Jay Berkenbilt
8971443e46
QPDF::addPage*: handle duplicate pages more robustly
2021-04-05 10:58:10 -04:00
Jay Berkenbilt
2957e9b731
Note on fuzz case
2021-03-27 09:18:36 -04:00
Jay Berkenbilt
a77f58142d
Remove some assertions that are not necessarily true ( fixes #514 )
...
Operations that add the same object to multiple places in the pages
tree are throwing exceptions and then later causing assertion
failures. The assert calls shouldn't be there.
2021-03-21 19:35:23 -04:00
Jay Berkenbilt
fb16c546b5
TODO: Comment about making making indirect objects
2021-03-11 12:53:09 -05:00
Jay Berkenbilt
d9cb2658d1
TODO: more notes on document-level work
2021-03-05 06:15:48 -05:00
Jay Berkenbilt
0b77f2cf26
Revert non-binary-compatible handleWarning change -- see TODO (ABI)
2021-03-04 15:59:46 -05:00
Jay Berkenbilt
c46137432e
TODO notes about text appearance streams
2021-03-04 15:08:36 -05:00
Jay Berkenbilt
e17585c2d2
Remove unreferenced: ignore names that are not Fonts or XObjects
...
Converted ResourceFinder to ParserCallbacks so we can better detect
the name that precedes various operators and use the operators to sort
the names into resource types. This enables us to be smarter about
detecting unreferenced resources in pages and also sets the stage for
reconciling differences in /DR across documents.
2021-03-03 17:05:49 -05:00
Jay Berkenbilt
5207c3da71
TODO note about document-level work
2021-03-03 15:16:46 -05:00
Jay Berkenbilt
1886673d7e
Spell check
2021-02-23 10:38:05 -05:00
Jay Berkenbilt
1e4c1be267
TODO: notes about document-level work
2021-02-23 10:38:05 -05:00
Jay Berkenbilt
d86a4faeeb
TODO: add note about updating fuzzer tests
2021-02-22 18:42:06 -05:00
Jay Berkenbilt
aa848126cb
Comment about QPDFMatrix and QPDFObjectHandle::Matrix
2021-02-21 08:06:19 -05:00
Jay Berkenbilt
3aefdd18a6
TODO: ABI note
2021-02-20 17:52:40 -05:00
Jay Berkenbilt
f21e4f264a
Add file attachment example
2021-02-18 09:59:03 -05:00
Jay Berkenbilt
efdd46da51
TODO: more changes for next ABI update
2021-02-07 19:41:34 -05:00
Jay Berkenbilt
e076c9bf08
Remove erroneous handling of /EFF for stream decryption
...
I thought /EFF was supposed to be used as a default for decrypting
embedded file streams, but actually it's supposed to be advice to a
conforming writer about handling new ones. This makes sense since the
findAttachmentStreams code, which is not actually needed, was never
right.
2021-02-06 17:08:41 -05:00
Jay Berkenbilt
15c17e58a2
TODO: add note about issue 476 with broken files
2021-02-05 05:17:12 -05:00
Jay Berkenbilt
4f103c6182
TODO note about sanitizer
2021-01-27 08:54:27 -05:00
Jay Berkenbilt
b5614f611d
Implement repair and insert for name/number trees
2021-01-24 19:31:45 -05:00
Jay Berkenbilt
d61ffb65d0
Add new constructors for name/number tree helpers
...
Add constructors that take a QPDF object so we can issue warnings and
create new indirect objects.
2021-01-24 03:27:26 -05:00
Jay Berkenbilt
891751f618
Remove unreferenced resources only from relevant pages
2021-01-04 15:17:35 -05:00
Jay Berkenbilt
a9bdeeb0e0
Fix zsh completion arguments ( fixes #473 )
2021-01-04 15:17:35 -05:00
Jay Berkenbilt
f0caf5e22d
TODO: remove items I decided not to do
2021-01-04 12:00:21 -05:00
Jay Berkenbilt
98da4fd835
Externalize inline images now includes form XObjects
2021-01-02 14:08:17 -05:00
Jay Berkenbilt
bedf35d6a5
Bug fix: avoid extraneous pipeline finish calls with multiple contents
...
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 14:08:17 -05:00
Jay Berkenbilt
a139d2b36d
Add several methods for working with form XObjects ( fixes #436 )
...
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 12:29:31 -05:00
Jay Berkenbilt
c9271335fa
Add QPDFPageObjectHelper::flattenRotation and --flatten-rotation
2020-12-30 13:03:55 -05:00
Jay Berkenbilt
78c49824eb
TODO updates
2020-12-28 13:03:04 -05:00
Jay Berkenbilt
d4d7630cf5
Add pdf-custom-filter example
2020-12-28 13:03:04 -05:00
Jay Berkenbilt
39bfa01307
Implement user-provided stream filters
...
Refactor QPDF_Stream to use stream filter classes to handle supported
stream filters as well.
2020-12-28 12:58:19 -05:00
Jay Berkenbilt
0675a3f61a
Decide not to allow stream data providers to modify dictionary
2020-12-26 08:48:20 -05:00
Jay Berkenbilt
cc8895078a
Add QPDFObjectHandle::makeDirect(bool allow_streams)
2020-12-26 08:48:18 -05:00
Jay Berkenbilt
52e07c813c
TODO: remove item I'm not fixing
2020-10-31 13:41:08 -04:00
Jay Berkenbilt
54759cbf63
Remove C++-11 notes from TODO
2020-10-27 18:07:07 -04:00
Jay Berkenbilt
bcea54fcaa
Revert removal of unreadCh change for performance
...
Turns out unreadCh is much more efficient than seek(-1, SEEK_CUR).
Update comments and code to reflect this.
2020-10-27 11:57:48 -04:00
Jay Berkenbilt
81d2c548dc
Spell check
2020-10-26 19:42:46 -04:00
Jay Berkenbilt
bc9c80dbe0
Add some missing ChangeLog entries
2020-10-26 11:51:33 -04:00
Jay Berkenbilt
4e8d21d849
Build Windows releases with openssl; automate external libraries
...
External libraries for Windows are now built automatically in the
qpdf/external-libs repository and include openssl in addition to zlib
and jpeg. Use these, and update the Windows build to build with the
openssl crypto provider by default. We leave the native crypto
provider enabled in case there is a problem with openssl and also to
continue to exercise that code.
2020-10-25 18:06:16 -04:00
Jay Berkenbilt
fd13fe74ef
TODO and comments item for pipeContentStreams
2020-10-23 16:53:58 -04:00
Jay Berkenbilt
e3248a8cd1
Update fuzz issue list
2020-10-23 11:08:44 -04:00
Jay Berkenbilt
b30deaeeab
Avoid merging adjacent tokens when concatenating contents ( fixes #444 )
2020-10-23 08:00:04 -04:00
Jay Berkenbilt
8a11feacc3
Avoid leak by resolving object streams more than once (fuzz issue 23642)
2020-10-22 15:39:36 -04:00
Jay Berkenbilt
c1684eae91
Check for overflow in page labels (fuzz issue 23599)
2020-10-22 05:49:24 -04:00
Jay Berkenbilt
24196c08cb
Fix loop detection error (fuzz issue 23172)
2020-10-22 05:48:35 -04:00
Jay Berkenbilt
956c8f6432
Obscure bug fix copying foreign streams in special cases ( fixes #449 )
...
Specifically, if a stream had its stream data replaced and had
indirect /Filter or /DecodeParms, it would result in non-silent loss
of data and/or internal error.
2020-10-21 19:23:23 -04:00
Jay Berkenbilt
395efdf8d7
Turn off azure pipelines, completing migration to GitHub Actions
2020-10-21 16:42:51 -04:00
Jay Berkenbilt
98f6c00dad
Protect numeric conversion against user's locale ( fixes #459 )
2020-10-21 16:42:51 -04:00
Jay Berkenbilt
ef127001b3
Remove some fuzz files with Mal/PDFEx-H ( fixes #460 )
...
There isn't really an issue with these files causing a real problem,
but malware and virus checkers trip on them, and the value to leaving
them in the test suite is too low to be worth the hassle.
2020-10-21 14:44:20 -04:00
Jay Berkenbilt
35014727f7
Build on a schedule and use latest versions of runners
2020-10-21 14:20:11 -04:00
Jay Berkenbilt
deeface146
Add automated test for shell wildcard expansion
...
Wildcard expansion is different in Windows from non-Windows and
sometimes requires special link options to work. Add tests that fail
if we link incorrectly.
2020-10-21 14:15:31 -04:00
Jay Berkenbilt
cfafac8d13
Create a minimal Linux binary distribution ( fixes #352 )
...
This is suitable for use as a Lambda layer in AWS, inclusion in a
docker container, or other places where a minimal binary distribution
is desired.
2020-10-21 10:07:34 -04:00
Jay Berkenbilt
758e3e38f5
Add option --warning-exit-0 to exit 0 instead of 3 with warnings
2020-10-20 18:02:39 -04:00
Jay Berkenbilt
90217e6686
Fix another case of errors written to stdout ( fixes #438 )
2020-10-20 17:48:55 -04:00
Jay Berkenbilt
b868ea141d
TODO: Build issues including Windows external libraries
2020-10-20 17:26:09 -04:00
Jay Berkenbilt
56d96e2260
Add --disable-rpath to configure ( fixes #422 )
2020-10-20 17:18:20 -04:00
Jay Berkenbilt
bed165c9fc
Stop using InputSource::unreadCh
2020-10-18 07:43:05 -04:00
Jay Berkenbilt
1a888ee3b1
TODO
2020-10-16 20:25:12 -04:00
Jay Berkenbilt
a3677ffe91
TODO and ChangeLog updates from merged pull requests
2020-10-16 20:15:14 -04:00
Jay Berkenbilt
894d1c650c
Minor notes on GitHub Actions migration
2020-10-16 17:52:43 -04:00
Jay Berkenbilt
92635d1203
Add GitHub Actions workflow
2020-10-16 17:34:21 -04:00
Jay Berkenbilt
18b34a5649
InputSource::unreadCh -- only unread most recently read character
...
This is all that ever worked. The test suite was trying to do
something different from ClosedFileInputSource.
2020-10-16 17:15:39 -04:00
Jay Berkenbilt
07909a62ed
TODO: remove previously completed item
2020-10-15 15:27:49 -04:00
Jay Berkenbilt
7fbadba6cd
Remove support for Travis CI
...
It is redundant with qpdf's main CI environment, which is Azure
Pipelines, but may soon be migrated to GitHub Actions.
2020-10-15 15:18:43 -04:00
Jay Berkenbilt
bbd45cd01c
Clarify qpdf's exit statuses in the documentation
2020-10-15 15:03:14 -04:00
Jay Berkenbilt
8f1db4dcf2
Fix doc typo (--encryption-file-password) ( fixes #468 )
2020-10-15 14:54:34 -04:00
Jay Berkenbilt
a1994a5343
Fix/clarify documentation on --rotate option ( fixes #470 )
...
Make clear that you almost always want + or - before an angle when
specifying rotation.
2020-10-15 14:53:06 -04:00
Jay Berkenbilt
88b8f8ec86
Remove redundant check found by lgtm.com
2020-10-15 14:47:43 -04:00
Jay Berkenbilt
4d143d10eb
TODO: organize in preparation for next increment
2020-10-15 14:10:21 -04:00
Jay Berkenbilt
22f7f459e6
Created PPA
2020-04-07 21:47:35 -04:00
Jay Berkenbilt
aec45e2c4f
TODO: note about Windows builds
2020-04-06 11:23:02 -04:00
Jay Berkenbilt
893d38b87e
Allow propagation of errors and retry through StreamDataProvider
...
StreamDataProvider::provideStreamData now has a rich enough API for it
to effectively proxy to pipeStreamData.
2020-04-05 20:07:13 -04:00
Jay Berkenbilt
a5367003c3
TODO: add analytics ideas
2020-04-04 18:08:40 -04:00
Jay Berkenbilt
144b2c8cbd
Update list of open fuzz cases
2020-04-03 12:17:57 -04:00
Jay Berkenbilt
da1258e2e6
Update C++11 notes in TODO
2020-04-03 12:17:57 -04:00
Jay Berkenbilt
5806e5c60c
QPDFPageObjectHelper::placeFormXObject: use std::string const& ( fixes #374 )
2020-04-03 12:17:57 -04:00
Jay Berkenbilt
cc755e37f7
Update TODO with notes on performance analysis
2020-04-03 12:16:24 -04:00
Jay Berkenbilt
676cdcff1a
Spell check
2020-01-26 18:32:35 -05:00
Jay Berkenbilt
8ed4efedba
Update fuzz notes
2020-01-26 18:29:11 -05:00
Jay Berkenbilt
49f4600dd6
TODO: Move lexical stuff and add detail
2020-01-13 09:18:36 -05:00
Jay Berkenbilt
0ae19c375e
TODO: Remove fixed item, move item into ABI section
2019-12-30 09:18:02 -05:00
Jay Berkenbilt
021d71454a
Spell check
2019-11-09 19:03:56 -05:00
Jay Berkenbilt
07da0039d3
Link with setargv or wsetargv with MSVC ( fixes #224 )
...
For wildcard expansion to work properly with the msvc binary, it is
necessary to link with setargv.obj or wsetargv.obj, depending on
whether wmain is in use.
2019-11-09 18:50:42 -05:00
Jay Berkenbilt
b997fa5343
Start list of ABI changes for qpdf 10
2019-11-09 12:33:15 -05:00
Jay Berkenbilt
1ee45458fc
Update docs for crypto providers
2019-11-09 09:53:42 -05:00
Jay Berkenbilt
653ce3550d
Require C++-11
...
Includes updates to m4/ax_cxx_compile_stdcxx.m4 to make it work with
msvc, which supports C++-11 with no flags but doesn't set __cplusplus
to a recent value.
2019-11-09 08:18:02 -05:00
Jay Berkenbilt
c590dbc38e
Update list of ignored fuzzer tests
...
Removed ones that were fixed upstream, and added a new one, all from
the jpeg library.
2019-11-03 18:59:12 -05:00
Jay Berkenbilt
d5ecaea488
Update fuzz errors in TODO
2019-10-12 19:37:40 -04:00
Jay Berkenbilt
5ce287d6bb
Remove reference to automatically closed fuzz issue
2019-09-17 19:52:42 -04:00
Jay Berkenbilt
00fd9b3e03
Update C++-11 notes
2019-08-30 18:36:44 -04:00
Jay Berkenbilt
bde44c18ef
Notes about C++-11 for qpdf 10
2019-08-30 12:41:25 -04:00
Jay Berkenbilt
d4c41e2624
TODO: update notes on ignored fuzz cases
2019-08-28 23:06:57 -04:00
Jay Berkenbilt
89dacd8eba
Array optimization fixes performance issues ( fixes #305 , #311 )
2019-08-18 09:00:55 -04:00
Jay Berkenbilt
8d7db4732b
TODO: add note to outlines
2019-07-13 21:35:14 -04:00
Jay Berkenbilt
43ff34b49c
Update TODO
2019-06-23 14:57:10 -04:00
Jay Berkenbilt
0b45dfd3b1
TODO updates
2019-06-22 21:52:50 -04:00
Jay Berkenbilt
ed8166b21e
TODO/README-maintainer cleanup
2019-06-22 12:02:39 -04:00
Jay Berkenbilt
658b5bb3be
QPDFWriter: clean up overloaded functions
...
In a small number of cases, it makes sense to replace an overloaded
function with a function that takes a default argument. We can do this
now because we've already broken binary compatibility since the last
release.
2019-06-22 10:13:27 -04:00
Jay Berkenbilt
79f6b4823b
Convert remaining public classes to use Members pattern
...
Have classes contain only a single private member of type
PointerHolder<Members>. This makes it safe to change the structure of
the Members class without breaking binary compatibility. Many of the
classes already follow this pattern quite successfully. This brings in
the rest of the class that are part of the public API.
2019-06-22 10:13:27 -04:00
Jay Berkenbilt
864a546af6
Build with -fvisibility=hidden when supported
2019-06-21 22:29:31 -04:00
Jay Berkenbilt
45dac410b5
Remove broken QPDFTokenizer::expectInlineImage
2019-06-21 22:29:31 -04:00
Jay Berkenbilt
25dd3c6750
Remove QPDF::copyForeignObject with unused parameter
2019-06-21 22:29:31 -04:00
Jay Berkenbilt
c6cfd64503
Rename QUtil::strcasecmp to QUtil::str_compare_nocase ( fixes #242 )
2019-06-21 22:29:31 -04:00
Jay Berkenbilt
bd8918fffc
Fix up TODO for ABI changes
2019-06-21 22:29:31 -04:00
Jay Berkenbilt
b07ad6794e
Fix bugs found by fuzz tests
...
* 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 17:56:24 -04:00
Jay Berkenbilt
2c81eec45e
Re-enable fuzzer testing in Windows
2019-06-21 17:32:35 -04:00
Jay Berkenbilt
1763957cbc
Remove integer type task from TODO
2019-06-21 13:17:45 -04:00
Jay Berkenbilt
bbabbc2076
TODO
2019-06-18 08:44:10 -04:00
Jay Berkenbilt
d263a0493a
TODO
2019-06-12 14:53:44 -04:00
Jay Berkenbilt
e61ee88dd2
Provide link to public key file
2019-05-18 08:49:30 -04:00
Jay Berkenbilt
b9b7e34743
TODO
2019-05-16 17:20:59 -04:00
Jay Berkenbilt
03e27709f3
Improve Unicode filename testing
...
Remove dependency on the behavior of perl for reliable creation of
Unicode file names on Windows.
2019-04-27 20:37:33 -04:00
Jay Berkenbilt
a5a016cdd2
Revert preservations of outlines with --split-pages
...
The preservation of outlines didn't provide very useful behavior
anyway as it copied all outlines but most didn't work. This
implementation also caused a very significant performance hit and so
is being reverted until a proper solution can be coded. The eventual
solution will not be compatible with the reverted solution anyway, so
it's best not to leave this in.
2019-04-20 21:00:43 -04:00
Jay Berkenbilt
8ce3b53cea
TODO: ABI note
2019-04-20 21:00:43 -04:00
Jay Berkenbilt
e6ba0dbf61
Note about -fvisibility
2019-04-20 21:00:43 -04:00
Jay Berkenbilt
d2260925f0
TODO: make it easier to find release signing key
2019-02-25 19:52:00 -05:00
Jay Berkenbilt
8acf636b4e
Incorporate improved Windows fragility workaround from qtest
2019-02-01 22:25:25 -05:00
Jay Berkenbilt
d491ed8753
TODO
2019-01-31 22:02:26 -05:00
Jay Berkenbilt
0a470d2daf
Don't optimize non-8-bit images
...
Also add test cases for additional coverage on image optimization.
2019-01-31 21:29:28 -05:00
Jay Berkenbilt
eb49e07c0a
Make inline image token exactly contain the image data
...
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 20:28:44 -05:00
Jay Berkenbilt
5211bcb5ea
Externalize inline images ( fixes #278 )
2019-01-31 10:38:13 -05:00
Jay Berkenbilt
b776dcd2d3
Clean up some private functions
2019-01-29 22:14:20 -05:00
Jay Berkenbilt
2d0885bc11
Clarify documentation for copyForeignObject regarding pages
...
Make explicit that copyForeignObject can be used on page objects and
will copy them properly but not update the pages tree.
2019-01-28 21:53:55 -05:00
Jay Berkenbilt
2712869cf9
Fix logic for when to compress object and xref streams ( fixes #271 )
2019-01-28 21:43:06 -05:00
Jay Berkenbilt
9e01c8bd99
TODO
2019-01-28 20:12:43 -05:00
Jay Berkenbilt
54bd37e881
TODO
2019-01-27 09:30:40 -05:00
Jay Berkenbilt
85f70cae23
TODO
2019-01-20 23:05:58 -05:00
Jay Berkenbilt
9315aa4bb0
TODO
2019-01-19 16:00:26 -05:00
Jay Berkenbilt
edc3b309bc
TODO
2019-01-19 10:25:19 -05:00
Jay Berkenbilt
aad2b10800
TODO
2019-01-12 10:04:14 -05:00
Jay Berkenbilt
6c2a7b692c
TODO
2019-01-10 22:35:08 -05:00
Jay Berkenbilt
854955b9b5
TODO
2019-01-07 09:52:41 -05:00
Jay Berkenbilt
0bf0f45e67
TODO
2019-01-07 07:38:03 -05:00
Jay Berkenbilt
fddbcab0e7
Mostly don't require original QPDF for copyForeignObject ( fixes #219 )
...
The original QPDF is only required now when the source
QPDFObjectHandle is a stream that gets its stream data from a
QPDFObjectHandle::StreamDataProvider.
2019-01-07 00:11:15 -05:00
Jay Berkenbilt
d81ff5aa3d
TODO
2019-01-05 23:02:00 -05:00
Jay Berkenbilt
7f4d238c53
TODO
2019-01-04 21:58:22 -05:00
Jay Berkenbilt
837dcf8fc2
Don't call assert while checking linearization data ( fixes #209 , #231 )
...
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.
2019-01-04 11:55:42 -05:00
Jay Berkenbilt
3dbbf9f240
TODO
2019-01-01 08:38:15 -05:00
Jay Berkenbilt
2e2223ffe1
TODO
2018-12-23 11:54:10 -05:00
Jay Berkenbilt
88fb2e5258
Workaround for fragile test on Windows
2018-10-16 11:41:00 -04:00
Jay Berkenbilt
c13a0f4467
Publish test results from AppImage build
2018-10-16 11:41:00 -04:00
Jay Berkenbilt
9b72ce09be
Change artifact directory from installers to distribution
2018-10-12 08:10:08 -04:00
Jay Berkenbilt
d6dbc6b389
TODO
2018-10-11 17:27:54 -04:00
Jay Berkenbilt
e73416319b
Fragile test
2018-08-14 17:22:23 -04:00
Jay Berkenbilt
3d6615b276
Pl_Buffer: reduce memory growth ( fixes #228 )
...
Rather than keeping a list of buffers for every write, accumulate
bytes in a single buffer, doubling the size of the buffer when needed
to accommodate new data.
This is not the best possible implementation, but the change was
implemented in this way to avoid changing the shape of Pl_Buffer and
thus breaking backward compatibility.
2018-08-12 17:45:43 -04:00
Jay Berkenbilt
7855e18ae2
Add detail about Unicode passwords
2018-07-01 17:25:10 -04:00
Jay Berkenbilt
9d7eef7cc6
Update TODO
...
Remove form flattening
Clarify splitting/merging with document level constructs
2018-06-21 16:04:54 -04:00
Jay Berkenbilt
b096e99649
buffer test: fix memory leak in test code
...
Forgot to delete a buffer in the test driver. There was no memory leak
or memory error in any installed code.
2018-05-05 17:43:44 -04:00
Jay Berkenbilt
1437f80560
TODO: note about MacPorts CI
2018-05-05 17:42:58 -04:00
Jay Berkenbilt
55b1d3ef16
TODO
2018-04-15 18:45:11 -04:00
Jay Berkenbilt
fa76d817c6
Update website for Žarko Gajić
2018-03-01 21:24:34 -05:00
Jay Berkenbilt
d0e99f195a
More robust handling of type errors
...
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.
2018-02-18 21:06:27 -05:00
Jay Berkenbilt
5b5f45e9dd
Remove lexer rewrite notes from TODO
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
ebd5ed63de
Add option to save pass 1 of lineariziation
...
This is useful only for debugging the linearization code.
2018-02-18 20:18:40 -05:00
Jay Berkenbilt
569d74d36b
Allow raw encryption key to be specified
...
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.
2018-01-14 10:21:05 -05:00
Jay Berkenbilt
512a518dd9
Update TODO
2018-01-13 20:19:11 -05:00
Jay Berkenbilt
794b649e5b
Update TODO and ChangeLog. Fixes #166 , #83
2017-12-25 18:29:18 -05:00
Jay Berkenbilt
d83f8f3bfa
Update TODO
2017-11-27 16:49:37 -05:00
Jay Berkenbilt
0f1ce8e646
Prepare 7.0.0 release
2017-09-16 13:22:15 -04:00
Jay Berkenbilt
07c8bb2843
Additionally license under Apache License version 2.0
...
The Apache License version 2.0 is now the primary license for qpdf.
However, users may, at their option, continue to use Artistic version
2.0.
2017-09-14 12:59:25 -04:00
Jay Berkenbilt
d31a7b76e7
Improve message for stream decoding error
...
Tweak the message so that we inform the user that we are mitigating
data loss.
2017-09-12 16:03:48 -04:00
Jay Berkenbilt
eaacf94005
Update C API with new QPDFWriter methods
2017-09-12 14:30:39 -04:00
Jay Berkenbilt
278852f5aa
TODO
2017-08-22 19:26:36 -04:00
Jay Berkenbilt
70949cb4cb
Update TODO
2017-08-22 14:22:20 -04:00
Jay Berkenbilt
3b170ab062
Update TODO
2017-08-21 17:52:11 -04:00
Jay Berkenbilt
9f95a37e38
TODO cleanup
2017-08-21 17:48:57 -04:00
Jay Berkenbilt
389396dbbf
Support Windows builds with MSYS2
...
Replace the old msys, mingw-w64, ActiveState perl setup with MSYS2.
This greatly simplifies the Windows build. This was facilitated by the
need to incorporate JPEG.
2017-08-21 17:44:22 -04:00
Jay Berkenbilt
39ab004336
Update TODO
2017-08-21 16:55:00 -04:00
Jay Berkenbilt
2d2f619665
Implement Pl_RunLength pipeline
2017-08-19 14:50:55 -04:00
Jay Berkenbilt
201b62fc68
Support NO_REBUILD=1 for testing without rebuild
2017-08-16 07:57:08 -04:00
Jay Berkenbilt
3388500327
Update TODO
2017-08-10 21:36:23 -04:00
Jay Berkenbilt
9a96e233b0
Remove PCRE
2017-08-10 21:30:32 -04:00
Jay Berkenbilt
8320d16cd2
Update TODO
2017-08-10 19:01:41 -04:00
Jay Berkenbilt
bd72ec98ef
Update TODO
2017-07-29 12:19:04 -04:00
Jay Berkenbilt
ba78e16966
Update TODO
2017-07-28 19:32:40 -04:00
Jay Berkenbilt
ede1255a82
Update TODO
2017-07-27 23:49:46 -04:00
Jay Berkenbilt
1e831cb978
TODO: bump ABI version
2017-07-26 06:24:07 -04:00
Jay Berkenbilt
d4d7612b5b
Note about std::regex attempt
2016-12-27 14:34:18 -05:00
Jay Berkenbilt
1f4a67912c
Bump library soname
...
Also update maintainer documentation on binary compatibility testing.
2015-11-10 12:42:37 -05:00
Jay Berkenbilt
e5abc789a2
Prepare 5.2.0 release
2015-11-01 16:40:01 -05:00
Jay Berkenbilt
b8bdef0ad1
Implement deterministic ID
...
For non-encrypted files, determinstic ID generation uses file contents
instead of timestamp and file name. At a small runtime cost, this
enables generation of the same /ID if the same inputs are converted in
the same way multiple times.
2015-10-31 18:56:42 -04:00
Jay Berkenbilt
5c9c5d537b
Update TODO with some small enhancements
...
There have been a few enhancements requested that only affect the qpdf
command line tool and that should be relatively quick to implement.
Work out the details and acknowledge these publicly in the TODO file.
2015-05-24 16:26:05 -04:00
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