aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-09-13 17:21:29 +0200
committerJay Berkenbilt <ejb@ql.org>2022-09-13 17:21:29 +0200
commit2394acf7a688b2d080d4233d66a6e22bf46f0fca (patch)
tree72f7d8587d690e3a6a47a04ce97dc656f53495a0
parenta0b1a181725721fe330c9b9abc6c16f93d28ac4d (diff)
downloadqpdf-2394acf7a688b2d080d4233d66a6e22bf46f0fca.tar.zst
Remove explicit direct object check from getObject
An indirect object reference to 0, 0 is invalid. If it appears in the file or is parsed from a string, the parser catches it. This check would only be useful for someone explicitly calling getObject with 0, 0, and that would trigger an error during resolve().
-rw-r--r--libqpdf/QPDF.cc6
-rw-r--r--qpdf/qtest/qpdf/issue-143.out1
-rw-r--r--qpdf/qtest/qpdf/obj0-check.out1
3 files changed, 3 insertions, 5 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc
index 8a6831f9..f952aaee 100644
--- a/libqpdf/QPDF.cc
+++ b/libqpdf/QPDF.cc
@@ -1781,9 +1781,8 @@ QPDF::readObjectAtOffset(
// not triggered by an xref lookup.
check_og = false;
try_recovery = false;
- } else {
- setLastObjectDescription(description, exp_og);
}
+ setLastObjectDescription(description, exp_og);
if (!this->m->attempt_recovery) {
try_recovery = false;
@@ -2190,9 +2189,6 @@ QPDF::reserveStream(QPDFObjGen const& og)
QPDFObjectHandle
QPDF::getObject(QPDFObjGen const& og)
{
- if (!og.isIndirect()) {
- return QPDFObjectHandle::newNull();
- }
if (!isCached(og)) {
m->obj_cache[og] = ObjCache(QPDF_Unresolved::create(this, og), -1, -1);
}
diff --git a/qpdf/qtest/qpdf/issue-143.out b/qpdf/qtest/qpdf/issue-143.out
index b09eea3b..5dccc8ed 100644
--- a/qpdf/qtest/qpdf/issue-143.out
+++ b/qpdf/qtest/qpdf/issue-143.out
@@ -14,5 +14,6 @@ WARNING: issue-143.pdf (object 1 0, offset 21): stream dictionary lacks /Length
WARNING: issue-143.pdf (object 1 0, offset 84): attempting to recover stream length
WARNING: issue-143.pdf (object 1 0, offset 84): recovered stream length: 606
WARNING: issue-143.pdf object stream 1 (object 2 0, offset 33): expected dictionary key but found non-name object; inserting key /QPDFFake1
+WARNING: issue-143.pdf: object 0/0 has unexpected xref entry type
WARNING: issue-143.pdf (object 2 0, offset 84): supposed object stream 12336 is not a stream
qpdf: operation succeeded with warnings; resulting file may have some problems
diff --git a/qpdf/qtest/qpdf/obj0-check.out b/qpdf/qtest/qpdf/obj0-check.out
index 785131d4..7a17e8a7 100644
--- a/qpdf/qtest/qpdf/obj0-check.out
+++ b/qpdf/qtest/qpdf/obj0-check.out
@@ -5,4 +5,5 @@ checking obj0.pdf
PDF Version: 1.3
File is not encrypted
File is not linearized
+WARNING: obj0.pdf (offset 15): object with ID 0
qpdf: operation succeeded with warnings