m-holger
c06653c3ab
Refactor QPDF::writeJSON
2024-02-16 12:00:37 +00:00
m-holger
b9bc05356a
Refactor QPDF::writeJSONStream
...
Use QPDF_Stream::writeStreamJSON.
Factor out the json_stream_data == qpdf_sj_file case.
2024-02-16 11:51:10 +00:00
m-holger
b15d0bf6e1
Add new method QPDF_Stream::writeStreamJSON
...
(Replacing the temporary implementation from the last commit.)
2024-02-16 11:37:50 +00:00
m-holger
920e929864
Reimplement QPDF_Stream::getStreamJSON in terms of writeStreamJSON
...
writeStreamJSON is a temporary implementation minimally adapted from
getStreamJSON.
2024-02-16 11:07:20 +00:00
m-holger
9589fad1e5
Reimplement QPDFObjectHandle::getJSON in terms of writeJSON
2024-02-16 11:00:20 +00:00
m-holger
9379b76811
Add additional name token JSON tests
...
Also, test writing JSON v1 files and files with deeply nested containers.
2024-02-16 10:54:08 +00:00
m-holger
d28969bf37
Add additional sparse array JSON tests
2024-02-16 10:53:52 +00:00
m-holger
431987475b
Add new method QPDF_Name::analyzeJSONEncoding
...
Provide a custom method to check whether a name is valid utf8. Integrate
checking for characters that need to be escaped in JSON.
2024-02-16 10:52:44 +00:00
m-holger
e2737ab646
Add new writeJSON methods
...
Create an alternative to getJSON to allow an object handle to be written as JSON without the overhead of creating a JSON object.
2024-02-16 10:51:25 +00:00
m-holger
9e90007a4a
Add new private class JSON::Writer
...
Create a simple utility class for writing JSON to a pipeline.
2024-02-16 10:32:41 +00:00
Jay Berkenbilt
b1b789df42
Detect end of input inside an unfinished JSON string
2024-02-06 15:30:29 -05:00
Jay Berkenbilt
3490090fbc
Detect JSON object whose value is an indirect object
2024-02-06 15:12:41 -05:00
Jay Berkenbilt
7ae095fa09
Fix JSON parser error found by fuzz
2024-02-04 17:27:49 -05:00
Jay Berkenbilt
f0fb19df9d
Add json fuzzer with seed files from #1123 and test suite
...
...as well as some cases generated in CI from earlier attempts at
fixing this.
2024-02-04 17:27:49 -05:00
Jay Berkenbilt
cb0f390cc1
Handle parse error stream data ( fixes #1123 )
...
A parse error in stream data in which stream data contained a nested
object would cause a crash because qpdf was not correctly updating its
internal state. Rework the QPDF json reactor to not be sensitive to
parse errors in this way.
2024-02-04 17:27:49 -05:00
Jay Berkenbilt
7caa9ddf5a
Format code
2024-02-04 16:12:01 -05:00
Jay Berkenbilt
532cc58d7e
Merge pull request #1138 from m-holger/j_key
...
Allow "n:/pdf-syntax" JSON syntax for dictionary keys
2024-02-03 13:09:31 -05:00
Jay Berkenbilt
aea885aab2
Merge pull request #1136 from m-holger/todo
...
Update TODO.md regarding indirect nulls in QPDF_Dictionary
2024-02-03 12:28:51 -05:00
Jay Berkenbilt
e641a883cd
Exercise more parameters of the tiff predictor in fuzz
2024-02-03 11:27:42 -05:00
Jay Berkenbilt
b1ec5ba883
Merge branch 'fz' of github.com:m-holger/qpdf into fz
2024-02-03 11:21:35 -05:00
m-holger
3279c21e13
Add additional test case for fuzz tests
2024-02-03 11:20:57 -05:00
Jay Berkenbilt
4dc0c5684e
Add issue about splitting pages to memory
2024-02-03 11:20:57 -05:00
m-holger
8ff20b0089
Allow "n:/pdf-syntax" JSON syntax for dictionary keys
2024-01-29 13:22:58 +00:00
m-holger
e93c5ec993
Update TODO.md regarding indirect nulls in QPDF_Dictionary
2024-01-28 14:06:37 +00:00
m-holger
d946ad6c30
In Pl_TIFFPredictor::processRow buffer output
2024-01-27 17:16:53 +00:00
m-holger
20ca1e8644
In Pl_TIFFPredictor::processRow optimize 8 bits_per_sample case
2024-01-27 12:04:36 +00:00
m-holger
b7abb12f55
In Pl_TIFFPredictor::processRow remove special case for first column
2024-01-26 20:56:21 +00:00
m-holger
c01fc3c2ae
In Pl_TIFFPredictor::processRow avoid repeated vector allocation
...
Also, modernize for loop.
2024-01-26 20:51:29 +00:00
m-holger
2e8b5f290c
In Pl_TIFFPredictor avoid repeated calls to getNext
2024-01-26 20:46:38 +00:00
m-holger
73dec35209
Simplify address arithmetic in Pl_TIFFPredictor
2024-01-26 20:44:07 +00:00
m-holger
5b7a44e1cc
In Pl_TIFFPredictor remove calls to memcpy
...
Instead of overwriting cur_row.data() use clear and insert.
2024-01-26 20:25:15 +00:00
m-holger
902fd6df71
Change Pl_TIFFPredictor::cur_row to std::vector<unsigned char>
2024-01-26 20:20:16 +00:00
Jay Berkenbilt
4660e23262
Merge pull request #1128 from m-holger/reconstruct
...
Tighten checks for invalid indirect references during xref reconstru…
2024-01-20 12:43:07 -05:00
Jay Berkenbilt
7be985b032
Merge pull request #1121 from m-holger/dj
...
Handle default-constructed JSON objects
2024-01-20 12:41:13 -05:00
m-holger
b6a2b5d3c1
Handle default-constructed JSON objects
2024-01-18 10:06:43 +00:00
m-holger
f0343565ed
Tighten checks for invalid indirect references during xref reconstruction
2024-01-17 14:11:57 +00:00
Jay Berkenbilt
6b80e0f14b
Merge pull request #1127 from m-holger/parser
...
Tighten checks for invalid indirect references in QPDFParser
2024-01-17 08:44:50 -05:00
m-holger
ed43691bf3
Tighten checks for invalid indirect references in QPDFParser
2024-01-17 13:15:13 +00:00
Jay Berkenbilt
87c07457e2
Merge pull request #1125 from m-holger/format
...
Update .clang-format to require braces after control statements
2024-01-17 07:57:12 -05:00
Jay Berkenbilt
9a6a1cce93
Merge pull request #1126 from m-holger/fuzz65777
...
Fix incorrect handling of invalid negative object ids
2024-01-17 07:54:24 -05:00
m-holger
6e3b7982db
Fix incorrect handling of invalid negative object ids
...
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.
2024-01-17 10:39:06 +00:00
m-holger
9e62e7a6b4
Update .clang-format to require braces after control statements
2024-01-16 12:28:34 +00:00
Jay Berkenbilt
0109e365de
ChangeLog from last PR
2024-01-15 11:08:25 -05:00
Jay Berkenbilt
37cf128501
Remove extraneous blank lines
2024-01-15 11:07:49 -05:00
m-holger
dca5927ba0
Tweak Handlers::json_handlers
...
Use std::vector instead of list and move shared pointers
2024-01-15 15:18:55 +00:00
m-holger
b85a590bc5
Tweak Handlers::beginUnderOverlay and beginPages
2024-01-15 15:03:33 +00:00
m-holger
a41b789995
Add new method JSON::getDictItem
2024-01-15 15:02:52 +00:00
Jay Berkenbilt
7315aa8c9b
Prioritize fuzz for JSON and code coverage
2024-01-12 09:03:15 -05:00
Jay Berkenbilt
25e87a9d03
Update TODO-pages from issues #1116
2024-01-12 08:05:22 -05:00
Jay Berkenbilt
ebb10f3256
Fix null pointer issue on array copy
2024-01-12 08:05:22 -05:00