From 2394acf7a688b2d080d4233d66a6e22bf46f0fca Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Tue, 13 Sep 2022 11:21:29 -0400 Subject: 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(). --- libqpdf/QPDF.cc | 6 +----- qpdf/qtest/qpdf/issue-143.out | 1 + qpdf/qtest/qpdf/obj0-check.out | 1 + 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 -- cgit v1.2.3-54-g00ecf