diff options
author | m-holger <m-holger@kubitscheck.org> | 2024-01-17 14:15:13 +0100 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2024-01-17 14:15:13 +0100 |
commit | ed43691bf3e1da1cefb7a4618cb809684040dd65 (patch) | |
tree | 89817345d127e2adf08f2e1ad90b1489454573fd /qpdf | |
parent | 6e3b7982dbcf8087374694253e0e248fbc6c6e3e (diff) | |
download | qpdf-ed43691bf3e1da1cefb7a4618cb809684040dd65.tar.zst |
Tighten checks for invalid indirect references in QPDFParser
Diffstat (limited to 'qpdf')
-rw-r--r-- | qpdf/qpdf.testcov | 2 | ||||
-rw-r--r-- | qpdf/test_driver.cc | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/qpdf/qpdf.testcov b/qpdf/qpdf.testcov index 6d0f8a4b..e7b6a8a2 100644 --- a/qpdf/qpdf.testcov +++ b/qpdf/qpdf.testcov @@ -256,7 +256,7 @@ QPDFWriter standard deterministic ID 1 QPDFWriter linearized deterministic ID 1 QPDFWriter deterministic with no data 0 qpdf-c called qpdf_set_deterministic_ID 0 -QPDFParser indirect with 0 objid 0 +QPDFParser invalid objgen 0 QPDF object id 0 0 QPDF recursion loop in resolve 0 QPDFParser treat word as string 0 diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc index 472a96a1..28d8062c 100644 --- a/qpdf/test_driver.cc +++ b/qpdf/test_driver.cc @@ -1202,6 +1202,10 @@ test_31(QPDF& pdf, char const* arg2) assert(QPDFObjectHandle::parse(&pdf, ">>").unparse() == "null"); // TC:QPDFParser eof in parse assert(QPDFObjectHandle::parse(&pdf, "[7 0 R]").getArrayItem(0).isNull()); + // TC:QPDFParser invalid objgen + assert( + QPDFObjectHandle::parse(&pdf, "[0 0 R -1 0 R 1 65535 R 1 100000 R 1 -1 R]").unparse() == + "[ null null null null null ]"); } static void |