m-holger
a367e56afc
In QPDF::resolveObjectsInStream avoid creating xref table entries
...
Invalid entries are created when objects in the stream do not have
an existing xref entry.
2024-07-02 01:16:23 +01:00
m-holger
6d640c569a
Add additional object id sanity checks
...
Ensure objects with impossibly large ids are ignored.
2024-07-02 01:16:23 +01:00
m-holger
42c511198b
Suppress excessive warnings while fuzzing
...
Add extra fuzz test case and amend memory limit for Pl_DCT.
2024-07-02 01:16:23 +01:00
m-holger
9081ac69cd
Merge pull request #1227 from m-holger/fuzz6
...
Refine #1225
2024-06-30 01:50:36 +01:00
m-holger
18c52640cc
Refine #1225
2024-06-29 14:47:03 +01:00
m-holger
0a081e1f09
In QPDFOutlineObjectHelper detect loops in direct children
...
Also, add diagnostic messages in qpdf_fuzzer and additional fuzz test case.
2024-06-29 12:38:07 +01:00
m-holger
c93b149b4d
Limit memory used for JPEG decompression during fuzzing
2024-06-28 21:15:45 +01:00
m-holger
6ed2880405
Merge pull request #1224 from m-holger/fuzz3
...
Fix #1170
2024-06-27 08:47:42 +01:00
m-holger
732aab8610
Merge pull request #1222 from m-holger/fuzz2
...
In PL_DCT add option to limit the size of uncompressed corrupt data
2024-06-27 08:20:01 +01:00
m-holger
8ae3ef28ac
Fix #1170
...
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.
2024-06-27 08:17:58 +01:00
m-holger
3d569e2171
Merge pull request #1221 from m-holger/fuzz
...
Refine handling of severely damaged files
2024-06-27 01:18:37 +01:00
m-holger
d83cf43811
In PL_DCT add option to limit the size of uncompressed corrupt data
...
Also, apply limit in dct_fuzzer
2024-06-26 11:57:29 +01:00
m-holger
4a8c821e3e
In QPDF::reconstruct_xref add sanity check for object ids
2024-06-25 15:46:47 +01:00
m-holger
e62973d277
In QPDF check for page tree after reading xref table
...
Also add new fuzz test case.
2024-06-25 15:18:54 +01:00
m-holger
295f62f041
Merge pull request #1170 from m-holger/readxref
...
Refactor QPDF::parse_xrefEntry
2024-06-19 20:08:44 +01:00
m-holger
ce5b864c53
Merge pull request #1201 from m-holger/xref_stream
...
QPDF::processXRefStream
2024-06-18 20:21:39 +01:00
Jay Berkenbilt
5e121c9690
Handle null form field from annotation ( fixes #1189 )
...
A file that has Widget annotations that can't be mapped back to form
fields would crash qpdf json.
2024-06-18 08:51:15 -04:00
Jay Berkenbilt
167057411e
Format code
2024-06-07 08:07:51 -04:00
Jay Berkenbilt
d17f11e721
Make QPDF::updateObjectMaps iterative
2024-06-06 15:22:14 -04:00
m-holger
2b0c2da720
Refactor QPDF::processXRefStream
...
Change the processed Index array to a vector of <first object, number of
entries> pairs.
2024-05-22 18:53:30 +01:00
m-holger
7477ea7828
Add new private method QPDF::processXRefSize
2024-05-22 17:07:42 +01:00
m-holger
f74b28f0d1
Add new private method QPDF::processXRefW
2024-05-22 17:07:37 +01:00
m-holger
0186d60dcf
Add new private method QPDF::processXRefIndex
2024-05-22 17:07:28 +01:00
m-holger
7aa5027bf8
Refactor QPDF::procesXRefStream
...
Add closure damaged to create damagedPDF exceptions.
2024-05-22 17:07:16 +01:00
m-holger
1737902a5e
Refactor QPDF::processXRefStream
...
Tune processing of subsections.
2024-05-21 20:31:52 +01:00
m-holger
f1c774f13f
Refactor QPDF::processXRefStream
...
Tune pointer arithmetic.
2024-05-21 20:31:40 +01:00
m-holger
8cd50e0e3e
Fix QPDF::tableSize
...
Apply temporary fix to deal with fuzz case 68915.
(Error is an integer overflow which would immediately cause a runtime error
as a result of a call to QInitCQIntC::to_size.)
2024-05-21 12:50:19 +01:00
m-holger
6f09069f43
Further refactor QUtil::call_main_from_wmain
2024-05-17 10:31:50 +01:00
m-holger
602d5eb61d
Refactor QUtil::call_main_from_wmain
2024-05-16 23:10:28 +01:00
m-holger
02e89bbe47
Fix bug in QPDFWriter::preserveObjectStreams
...
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.
2024-05-04 10:55:30 +01:00
m-holger
e85b98b7e8
Guard against object id == std::numeric_limits<int> in QPDF::insertReconstructedXrefEntry
2024-04-30 12:38:02 +01:00
m-holger
60c7d594b8
In QPDF::filterCompressedObjects ignore objects not in QPDFWriter tables
...
Add fuzz case 68377.
2024-04-30 10:46:06 +01:00
m-holger
972cbf103d
In QPDF::processXRefStream avoid inserting objed id 0 into the xref table
2024-04-30 10:38:59 +01:00
Jay Berkenbilt
0bb1458f38
Merge pull request #1161 from m-holger/writer
...
Tune QPDFWriter
2024-04-28 14:44:06 -04:00
m-holger
aa2e0d23f0
In QPDFWriter::writeLinearized use object table obj in call to getLinearizedParts
2024-03-08 10:41:24 +00:00
m-holger
97d78c75ff
In QPDFWriter::writeLinearized use object table obj in call to optimize
2024-03-08 10:33:42 +00:00
m-holger
0df0d00c58
Add method QPDF::Writer::getCompressibleObjSet
...
Create set without creation of an intermediate vector.
2024-03-08 10:20:12 +00:00
m-holger
ae00ee6119
Replace QPDF::Writer::getObjectStreamData with getXRefTable
2024-03-08 10:10:31 +00:00
m-holger
ef3a8025fb
In QPDFWriter replace map lenghts with ObjTable new_obj
2024-03-08 10:06:14 +00:00
m-holger
ccad589f7d
In QPDFWriter replace map xref with new ObjTable new_obj
2024-03-08 10:05:57 +00:00
m-holger
47cf4e3a50
In QPDFWriter change object_stream_to_objects to a map of vectors.
2024-03-08 10:04:54 +00:00
m-holger
2fa93e79b4
In QPDFWriter replace map object_to_object_stream with ObjTable obj
2024-03-08 09:59:56 +00:00
m-holger
84e25919cb
In QPDFWriter replace map obj_renumber_no_gen with ObjTable obj
2024-03-08 09:36:47 +00:00
m-holger
8791b5f8d0
In QPDFWriter replace map obj_renumber with a new object table obj
2024-03-08 09:36:22 +00:00
m-holger
72bd486337
Refactor QPDF::parse_xrefEntry
...
Move reading of the entry from read_xrefTable to parse_xrefEntry.
Split parse_xrefEntry into two new methods read_xrefEntry and
read_bad_xrefEntry. read_xrefEntry is optimised for reading
correct entries. To handle incorrect entries it calls read_bad_xrefEntry,
which is largely unchanged from parse_xrefEntry.
2024-03-07 15:33:27 +00:00
Jay Berkenbilt
e9166457fa
Tweak pull request contribution on fixing non-standard basic_string_view
2024-03-03 13:40:59 -05:00
Zoe Clifford
07bc363224
string_view leads to char_traits which is not standard C++ (background in #1024 ).
...
This triggers compilation failures with certain C++20 compiler configurations.
To avoid this I moved the cast to the loop's body.
2024-02-28 13:26:10 -08:00
Jay Berkenbilt
2d402e451c
Format code
2024-02-24 10:29:41 -05:00
Jay Berkenbilt
c1a48ec81d
Documentation fixes for set/remove page labels
2024-02-17 16:13:46 -05:00
Jay Berkenbilt
7bc52c5728
set page labels: detect start page < 1 ( fixes #939 )
2024-02-17 16:13:42 -05:00