aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2024-01-17 14:15:13 +0100
committerm-holger <m-holger@kubitscheck.org>2024-01-17 14:15:13 +0100
commited43691bf3e1da1cefb7a4618cb809684040dd65 (patch)
tree89817345d127e2adf08f2e1ad90b1489454573fd /qpdf
parent6e3b7982dbcf8087374694253e0e248fbc6c6e3e (diff)
downloadqpdf-ed43691bf3e1da1cefb7a4618cb809684040dd65.tar.zst
Tighten checks for invalid indirect references in QPDFParser
Diffstat (limited to 'qpdf')
-rw-r--r--qpdf/qpdf.testcov2
-rw-r--r--qpdf/test_driver.cc4
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