Commit Graph

20 Commits

Author SHA1 Message Date
Michael R Sweet
c992b2ba89
Update the token reading code to protect against obvious format abuses.
Update the xref loading code to protect against looping xref tables.
2023-12-07 17:50:52 -05:00
Michael R Sweet
ed723a46dc
Make sure buffer is terminated on error. 2023-12-06 11:21:33 -05:00
Michael R Sweet
34dbf6c2fe
Documentation cleanup. 2023-12-05 13:49:58 -05:00
Michael R Sweet
7f6ffcda22
Fix a couple issues with parsing PDF files produced by Microsoft Reporting
Services (Issue #46)

- Odd cross-reference stream containing 3-byte generation number field for this
  16-bit value
- Odd empty hex strings
2023-10-06 10:46:30 -04:00
Michael R Sweet
4f10021e7e
Fix denial-of-service attack when reading corrupt PDF files. 2023-02-03 20:39:04 -05:00
Michael R Sweet
1e33878506
Fix conversion of nul-containing strings to binary.
Move key length checks to a common place.
2021-11-02 09:12:43 -04:00
Michael R Sweet
2f0d622873
Save work on resolving PDF loading issues with random PDFs using different encryption methods and line endings. 2021-11-01 21:30:46 -04:00
Michael R Sweet
6432187dea
Fix sporadic test suite failures caused by greedy whitespace removal in token
reader.

Update read code to handle signal/temporary failures.

Add some more useful debug messages for the encryption code.

Eliminate more warnings from Clang.
2021-10-31 11:12:54 -04:00
Michael R Sweet
038046e6d5
Save work on encrypted PDF reading. 2021-10-25 19:36:39 -04:00
Michael R Sweet
543364dfa2
More efficiently implement reading of integers vs. indirect references.
"testpdfio filename.pdf objnum" now shows object value if there is no stream.

Clean up debugging printfs.
2021-08-23 14:31:54 -04:00
Michael R Sweet
b0d3080ffe
Resolve clang warning. 2021-06-04 11:03:24 -04:00
Michael R Sweet
246c2e4b41
Rename as PDFio for consistency.
Add PDFio logo image.

Move documentation to "doc" subdirectory.
2021-05-30 07:10:44 -04:00
Michael R Sweet
18853ca3d5
Increase token buffer to 256 bytes, to avoid overflow scenarios.
Add _pdfioTokenFlush to manually flush the token buffer.

Add more debug printfs.
2021-05-10 17:37:57 -04:00
Michael R Sweet
67ed214c59
Restructure unit test program to include unit tests and alternate error handling.
Don't log all strings after adding one.

Don't trim string buffer after reading a token.
2021-05-10 08:00:27 -04:00
Michael R Sweet
af8c731699
Update token reader to handle balanced parens and to allow arbitrary backslash escapes.
Update unit test to omit path information from filename.
2021-05-09 21:32:09 -04:00
Michael R Sweet
9a919d478f
Rework token reading to be separate from the PDF file so we can add support
for compressed object streams.
2021-05-08 07:38:44 -04:00
Michael R Sweet
4abb91ca24
Save work on loading object dictionaries - have a memory issue someplace. 2021-05-04 21:31:58 -04:00
Michael R Sweet
59ef6b48ed
Add some debug output, "debug" make target.
Fix loading of dicts, trailer.
2021-05-04 12:59:10 -04:00
Michael R Sweet
4b05ca6436
Token parsing code. 2021-05-01 22:38:11 -04:00
Michael R Sweet
e107b94c83
Work on token parsing. 2021-05-01 17:50:52 -04:00