2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-12-22 02:49:00 +00:00
Commit Graph

1930 Commits

Author SHA1 Message Date
Jay Berkenbilt
ef9616775e Fix headers for rijndael.h 2024-12-14 11:02:33 -05:00
m-holger
64e9839710 Validate key length in Pl_AES_PDF constructor 2024-11-08 17:35:28 +00:00
m-holger
1eb5df92f4 Fix gratuitous calls to bad_subsections in Xref_table::subsections 2024-10-25 11:16:45 +01:00
m-holger
acc57ca090 Add QPDF::Objects destructor
Also, make obj_cache private and rename to table.
2024-10-09 12:02:34 +01:00
m-holger
336d783325 Move calculations from QPDF::getObjectCount to Objects::next_id 2024-10-09 11:55:29 +01:00
m-holger
113ea4e7ae Add new method Objects::all 2024-10-09 11:39:44 +01:00
m-holger
9e03dc54cc Add new method Objects::swap 2024-10-09 11:39:17 +01:00
m-holger
83fc18af09 Add new method Objects::replace 2024-10-09 11:27:40 +01:00
m-holger
6c9903062f Add new method Objects::get 2024-10-09 11:27:28 +01:00
m-holger
83443c116d Make ObjCache of inner class of QPDF::Objects and rename to Entry 2024-10-09 11:09:18 +01:00
m-holger
b5a5780019 Make Xref_table an inner class of QPDF::Objects 2024-10-09 09:53:57 +01:00
m-holger
a3f693c8f9 Move private methods in QPDF_objects to QPDF::Objects 2024-10-09 08:58:57 +01:00
m-holger
2015f71c7d Add new inner class to QPDF::Objects 2024-10-07 14:18:59 +01:00
m-holger
83897e8789 Split QPDF.cc into QPDF.cc and QPDF_objects.cc
Move methods responsible for loading or keeping track of objects to
QPDF_objects.cc.
2024-10-07 14:10:18 +01:00
m-holger
9f0cc086b1 Copy QPDF.cc to new QPDF_objects 2024-10-06 17:45:29 +01:00
m-holger
c916dcf973 Add new protected inline method Pipeline::next
Also, tidy pipeline constructors and make subclasses final where possible.
2024-10-06 15:10:13 +01:00
m-holger
192525226f Validate that offsets in object streams are strictly increasing 2024-09-28 00:28:17 +01:00
m-holger
1b6a504d42 Add sanity check for xref stream /Size entry 2024-09-28 00:25:31 +01:00
m-holger
1796365713
Merge branch 'main' into mslichao/capifreebuf 2024-09-27 11:31:55 +01:00
m-holger
50d385c858
Merge pull request #1274 from m-holger/meta
Add new commands --remove-metadata and --remove-info
2024-09-27 11:26:34 +01:00
m-holger
0aa6b67eea In QPDFWordTokenFinder::check limit the token length
Tokens longer than the target cannot be a match and therefore there is no
need to read to the end of token.
2024-09-24 01:32:32 +01:00
m-holger
21f176d374 Add sanity check on trailer /Size entry 2024-09-20 15:28:49 +01:00
m-holger
44a1395194 Refactor QPDF::Xref_table::read_entry and read_bad_entry
Return results rather than using reference parameters.

Fixes bug in #1272 where parameters were not reinitialized when calling
read_bad_entry from read_entry.
2024-09-20 15:28:34 +01:00
Chao Li(VISION)
f6ae1ff16a Rename to qpdf_oh_free_buffer 2024-09-20 04:53:32 +00:00
m-holger
06a2d955fc In QPDFParser add a limit on total number of errors in one object
Currently, QPDFParser gives up attempting to parse an object if 5
near-consecutive bad tokens are encountered. Add a limit of a total of 15
bad tokens in a single object before giving up.
2024-09-19 17:28:26 +01:00
Chao Li(VISION)
8c1cde4ec3 Add C API qpdf_free_buffer to release memory allocated by stream data functions 2024-09-19 12:21:49 +00:00
m-holger
cb7180b1ba Move QPDF::ObjCache::end_before_space etc to Xref_table
Also, delay adjustments for compressed objects until needed by
linearization checks.
2024-09-18 10:25:38 +01:00
m-holger
28c13f5492 Refactor Xref_table::subsections
Optimistically read subsection headers without reading individual object
entries, assuming that they are 20 bytes long as per the PDF spec. If
problems are encountered, fall back to calling bad_subsections.
2024-09-18 10:25:38 +01:00
m-holger
ad10fa3006 Rename Xref_table::subsections to bad_subsections 2024-09-18 10:25:38 +01:00
m-holger
0f0747b3ae Refactor QPDF::getXRefTable 2024-09-18 10:25:38 +01:00
m-holger
965f0fcd63 Refactor QPDF::recoverStreamLength 2024-09-18 10:25:38 +01:00
m-holger
98c14e7740 Refactor QPDF::checkLinearizationInternal 2024-09-18 10:25:38 +01:00
m-holger
7775aec33e Refactor QPDFWriter::preserveObjectStreams 2024-09-18 10:25:38 +01:00
m-holger
a1b646fcca Refactor Xref_table::Entry
Replace QPDFXRefEntry with a std::variant of structs.
2024-09-18 10:25:38 +01:00
m-holger
6b9eb14c76 Remove Xref_table::deleted_objects 2024-09-18 10:25:38 +01:00
m-holger
c0020cb17d Change Xref_table::table to std::vector
Temporarily disable 3 specific-bugs tests. Remove 'xref size mismatch'
test.
2024-09-18 10:25:38 +01:00
m-holger
91822ae6a1 Refactor Xref_table::reconstruct
Split reconstruction into two passes - scanning of input for objects and
insertion of objects into the xref table. This allows insertion to take
place in the usual reverse order and removes the need for a separate
insert_reconstructed method.
2024-09-18 10:25:38 +01:00
m-holger
39df5936fe Refactor Xref_table::read_table
Rename to Xref_table::process_section.
Process trailer processing subsection entries.
2024-09-18 10:25:38 +01:00
m-holger
ed65619428 Add new methods Xref_table::subsections
Calculate all subsections before reading subsection entries.

Duplicates some warnings for the time being.
2024-09-18 10:25:38 +01:00
m-holger
cee8d5c92d Refactor Xref_table::parse_first
Rename to Xref_table::subsection.
Return results instead of using out parameters.
Take on responsibility for throwing exception and calculation of offset of
first subsection entry.
2024-09-18 10:25:38 +01:00
m-holger
0c56cec6c3 Refactor QPDF::createFromJSON 2024-09-18 10:25:38 +01:00
m-holger
88fd7ca99a Refactor QPDF::emptyPDF 2024-09-18 10:25:38 +01:00
m-holger
39abb11376 Make all QPDF::Xref_table data members private 2024-09-18 10:25:38 +01:00
m-holger
82419ca013 Add new data member QPDF::Xref_table::table 2024-09-18 10:25:38 +01:00
m-holger
742cc7d87b Add temporary methods QPDF::Xref_table::size and as_map
Also, remove redundant clearing of the xref tabl during QPDF destruction.
2024-09-18 10:25:38 +01:00
m-holger
fa03ed3891 Refactor QPDF::removeObject
Do not remove object from xref table as this is only required when the
the method is called from within QPDF::Xref_table.
2024-09-18 10:25:38 +01:00
m-holger
5fc257f0f7 Add QPDF::Xref_table methods type, offset, stream_number and stream_index 2024-09-18 10:25:38 +01:00
m-holger
d64b14912d Move QPDF::readTrailer to QPDF::Xref_table 2024-09-18 10:25:38 +01:00
m-holger
3ddc51a9dc Move QPDF::resolveXRefTable to QPDF::Xref_table 2024-09-18 10:25:38 +01:00
m-holger
ad4688866d Add new method QPDF::Xref_table::show 2024-09-18 10:25:38 +01:00