diff options
Diffstat (limited to 'libqpdf/QPDF_linearization.cc')
-rw-r--r-- | libqpdf/QPDF_linearization.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libqpdf/QPDF_linearization.cc b/libqpdf/QPDF_linearization.cc index 4b1f5c09..2c4fefc0 100644 --- a/libqpdf/QPDF_linearization.cc +++ b/libqpdf/QPDF_linearization.cc @@ -958,6 +958,15 @@ QPDF::checkHOutlines(std::list<std::string>& warnings) { // Check length and offset. Acrobat gets these wrong. QPDFObjectHandle outlines = getRoot().getKey("/Outlines"); + if (! outlines.isIndirect()) + { + // This case is not exercised in test suite since not + // permitted by the spec, but if this does occur, the + // code below would fail. + warnings.push_back( + "/Outlines key of root dictionary is not indirect"); + return; + } QPDFObjGen og(outlines.getObjGen()); assert(this->xref_table.count(og) > 0); int offset = getLinearizationOffset(og); |