-
Try a limit of 50MB. For very large limits processing time before damage is encountered may exceed oss-fuzz limits. Add further test cases.
-
Reject non-dictionary Page and Pages objects. Also add additional qpdf_fuzzer test cases.
-
Add test case for oss-fuzz 15471 and 69977a
-
Fixes oss-fuzz 70055
-
As a rule, we should avoid conditional compilation is it always causes code paths that are sometimes not even seen lexically by the compiler. Also, we want the actual code being fuzzed to be as close as possible to the real code. Conditional compilation is suitable to handle underlying system differences. Instead, favor configuration using callbacks or other methods that can be triggered in the places where they need to be exercised.
-
Add extra fuzz test case and amend memory limit for Pl_DCT.
-
Also, add diagnostic messages in qpdf_fuzzer and additional fuzz test case.
-
Fix #1170
-
In PL_DCT add option to limit the size of uncompressed corrupt data
-
In QPDF::read_xrefEntry add buffer overflow test for first eol character. Overlong f1 or f2 entries consisting only of zeros could cause a buffer overflow. Add fuzz testcase 69913.
-
Also, apply limit in dct_fuzzer
-
Also add new fuzz test case.
-
Code failed to allow for QPDF::getCompressibleObjSet deleting objects from the object cache in case of multiple entries for the same object id. Add fuzz test case 68668.
-
Add fuzz case 68377.
-
...as well as some cases generated in CI from earlier attempts at fixing this.
-
Fix two errors introduced in #1110 and #1112. Since #1110, encountering the invalid indirect reference #1110 -2147483648 n R produces an integer underflow which, if undetected, immediately trigger a logic error. Since #1112, object -1 0 R may be incorrectly identified as an earlier generation of itself and deleted, invalidating a live iterator.
-
It is possible to reproduce the failure with this file following the instructions with oss-fuzz, though it does not cause a failure in CI. The failure was introduced in 18c1ffe0df335a46cddbeb96e2cb939d850df9fa.
-
Remove variables obsoleted by commit 4f24617.
-
Update getJSON() methods and calls to them
-
Where not possible, use "auto" to get the iterator type. Editorial note: I have avoid this change for a long time because of not wanting to make gratuitous changes to version history, which can obscure when certain changes were made, but with having recently touched every single file to apply automatic code formatting and with making several broad changes to the API, I decided it was time to take the plunge and get rid of the older (pre-C++11) verbose iterator syntax. The new code is just easier to read and understand, and in many cases, it will be more effecient as fewer temporary copies are being made. m-holger, if you're reading, you can see that I've finally come around. :-)