Jay Berkenbilt
3f3dbe22ea
Remove array null flattening
...
For some reason, qpdf from the beginning was replacing indirect
references to null with literal null in arrays even after removing the
old behavior of flattening scalar references. This seems like a bad
idea.
2019-08-22 17:55:16 -04:00
Jay Berkenbilt
4b674b42e4
Mention name tokens in TokenFilter comments
2019-08-22 17:55:16 -04:00
Jay Berkenbilt
225cd9dac2
Protect against coding error of re-entrant parsing
2019-08-22 17:55:16 -04:00
Jay Berkenbilt
ae5bd7102d
Accept extraneous space before xref ( fixes #341 )
2019-08-19 22:24:53 -04:00
Jay Berkenbilt
8a9086a689
Accept extraneous space after stream keyword ( fixes #329 )
2019-08-19 21:43:44 -04:00
Jay Berkenbilt
43f91f58b8
Improve invalid name token warning message
...
This message used to only appear for PDF >= 1.2. The invalid name is
valid for PDF 1.0 and 1.1. However, since QPDFWriter may write a newer
version, it's better to detect and warn in all cases. Therefore make
the warning more informative.
2019-08-19 19:48:27 -04:00
Jay Berkenbilt
42d396f1dd
Handle invalid name tokens symmetrically for PDF < 1.2 ( fixes #332 )
2019-08-19 19:48:27 -04:00
Jay Berkenbilt
d9dd99eca3
Attempt to repair /Type key in pages nodes ( fixes #349 )
2019-08-18 18:54:37 -04:00
Jay Berkenbilt
c032f7c972
Improve how qtest finds windows /bin
2019-08-18 15:46:01 -04:00
Jay Berkenbilt
89dacd8eba
Array optimization fixes performance issues ( fixes #305 , #311 )
2019-08-18 09:00:55 -04:00
Jay Berkenbilt
522d2b2227
Improve efficiency of fixDanglingReferences
2019-08-18 09:00:40 -04:00
Jay Berkenbilt
5187a3ec85
Shallow copy arrays without removing sparseness
2019-08-17 23:02:41 -04:00
Jay Berkenbilt
bf7c6a8070
Use SparseOHArray in parsing
2019-08-17 23:02:41 -04:00
Jay Berkenbilt
e5f504b6c5
Use SparseOHArray in QPDF_Array
2019-08-17 23:02:41 -04:00
Jay Berkenbilt
a89d8a0677
Refactor QPDF_Array in preparation for using SparseOHArray
2019-08-17 23:02:41 -04:00
Jay Berkenbilt
e83f3308fb
SparseOHArray
2019-08-17 23:02:41 -04:00
Jay Berkenbilt
04419d7c32
Maintainer notes for using profiler
2019-08-17 10:17:20 -04:00
Jay Berkenbilt
8d7db4732b
TODO: add note to outlines
2019-07-13 21:35:14 -04:00
Jay Berkenbilt
88c1956705
Update comment in PointerHolder
2019-07-13 21:34:46 -04:00
Thorsten Schöning
8f06da7534
Change list to vector for outline helpers ( fixes #297 )
...
This change works around STL problems with Embarcadero C++ Builder
version 10.2, but std::vector is more common than std::list in qpdf,
and this is a relatively new API, so an API change is tolerable.
Thanks to Thorsten Schöning <6223655+ams-tschoening@users.noreply.github.com>
for the fix.
2019-07-03 20:08:47 -04:00
Jay Berkenbilt
4db1de97ce
Convert some cases of logic_error to runtime_error
...
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-25 12:43:06 -04:00
Jay Berkenbilt
201e8798d7
Convert previously overlooked static cast to QIntC
2019-06-25 12:43:06 -04:00
Jay Berkenbilt
0ae344d002
Add fuzzers to exercise specific pipeline classes
2019-06-23 15:37:21 -04:00
Jay Berkenbilt
43ff34b49c
Update TODO
2019-06-23 14:57:10 -04:00
Jay Berkenbilt
04f45cf652
Treat all linearization errors as warnings
...
This also reverts the addition of a new checkLinearization that
distinguishes errors from warnings. There's no practical distinction
between what was considered an error and what was considered a
warning.
2019-06-23 13:45:45 -04:00
Jay Berkenbilt
0b45dfd3b1
TODO updates
2019-06-22 21:52:50 -04:00
Jay Berkenbilt
c4e286ac79
Fix typo in manual
2019-06-22 20:57:33 -04:00
Jay Berkenbilt
c5ed1b8075
Handle invalid encryption Length ( fixes #333 )
2019-06-22 20:57:33 -04:00
Jay Berkenbilt
551dfbf697
Allow set*EncryptionParameters before filename iset ( fixes #336 )
2019-06-22 20:57:33 -04:00
Jay Berkenbilt
ed62be888c
Fix --completion-* args to work from AppImage ( fixes #285 )
2019-06-22 17:12:01 -04:00
Jay Berkenbilt
7bd38a3eb3
Provide error message in Windows crypto code ( fixes #286 )
...
Thanks to github user zdenop for supplying some additional
error-handling code.
2019-06-22 17:12:01 -04:00
Jay Berkenbilt
6c39aa8763
In shippable code, favor smart pointers ( fixes #235 )
...
Use PointerHolder in several places where manually memory allocation
and deallocation were being used. This helps to protect against memory
leaks when exceptions are thrown in surprising places.
2019-06-22 16:57:52 -04:00
Jay Berkenbilt
1240047528
Try to use pkg-config to find external dependencies ( fixes #324 )
2019-06-22 16:57:52 -04:00
Jay Berkenbilt
f2ef161261
Override umask on install ( fixes #326 )
2019-06-22 16:57:52 -04:00
Jay Berkenbilt
85a3f95a89
qpdf: exit 3 for linearization warnings without errors ( fixes #50 )
2019-06-22 16:57:51 -04:00
Jay Berkenbilt
557bd3c261
Start 9.0.0 release notes
2019-06-22 16:57:51 -04:00
Jay Berkenbilt
a5814d9302
ChangeLog: fix errors in previous entries
2019-06-22 16:57:51 -04:00
Jay Berkenbilt
ed8166b21e
TODO/README-maintainer cleanup
2019-06-22 12:02:39 -04:00
Jay Berkenbilt
2001cbc8a1
Add fuzz reminder to release checklist
2019-06-22 10:37:03 -04:00
Jay Berkenbilt
1bde5c68a3
Add QUtil::read_file_into_memory
...
This code was essentially duplicated between test_driver and
standalone_fuzz_target_runner.
2019-06-22 10:14:25 -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
46304befec
Use clang for sanitizers
...
Clang seems to be slightly stricter than gcc.
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
97833d7cf3
configure: add missing checking messages
2019-06-21 22:29:31 -04:00
Jay Berkenbilt
ade8e2cd7f
Remove unused gcc-linux make rules
...
I don't want to maintain them or make anyone think they should be used.
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