Commit 023a00271974200355eba3743ccc9af2f8b01c4d
1 parent
dfb2718c
Enhance `QPDFOutlineDocumentHelper` by adding stricter value validation and invo…
…king `validate()` for `names_dest` initialization
Showing
2 changed files
with
18 additions
and
1 deletions
libqpdf/QPDFOutlineDocumentHelper.cc
| @@ -94,7 +94,14 @@ QPDFOutlineDocumentHelper::resolveNamedDest(QPDFObjectHandle name) | @@ -94,7 +94,14 @@ QPDFOutlineDocumentHelper::resolveNamedDest(QPDFObjectHandle name) | ||
| 94 | if (!m->names_dest) { | 94 | if (!m->names_dest) { |
| 95 | auto dests = qpdf.getRoot().getKey("/Names").getKeyIfDict("/Dests"); | 95 | auto dests = qpdf.getRoot().getKey("/Names").getKeyIfDict("/Dests"); |
| 96 | if (dests.isDictionary()) { | 96 | if (dests.isDictionary()) { |
| 97 | - m->names_dest = std::make_unique<QPDFNameTreeObjectHelper>(dests, qpdf); | 97 | + m->names_dest = std::make_unique<QPDFNameTreeObjectHelper>( |
| 98 | + dests, | ||
| 99 | + qpdf, | ||
| 100 | + [](QPDFObjectHandle const& o) -> bool { | ||
| 101 | + return o.isArray() || o.isDictionary(); | ||
| 102 | + }, | ||
| 103 | + true); | ||
| 104 | + m->names_dest->validate(); | ||
| 98 | } | 105 | } |
| 99 | } | 106 | } |
| 100 | if (m->names_dest) { | 107 | if (m->names_dest) { |
manual/release-notes.rst
| @@ -23,6 +23,16 @@ more detail. | @@ -23,6 +23,16 @@ more detail. | ||
| 23 | not work on some older Linux distributions. If you need support | 23 | not work on some older Linux distributions. If you need support |
| 24 | for an older distribution, please use version 12.2.0 or below. | 24 | for an older distribution, please use version 12.2.0 or below. |
| 25 | 25 | ||
| 26 | + - Library Enhancements | ||
| 27 | + | ||
| 28 | + - Add ``QPDFNameTreeObjectHelper`` and ``QPDFNumberTreeObjectHelper`` | ||
| 29 | + constructor overloads that allow a function to ne passed to | ||
| 30 | + validate the values in the tree. | ||
| 31 | + | ||
| 32 | + - Add new ``QPDFNameTreeObjectHelper`` and ``QPDFNumberTreeObjectHelper`` | ||
| 33 | + ``validate`` method to validate and optionally repair the name/number | ||
| 34 | + tree. | ||
| 35 | + | ||
| 26 | - CLI Enhancements | 36 | - CLI Enhancements |
| 27 | 37 | ||
| 28 | - Disallow option :qpdf:ref:`--deterministic-id` to be used together | 38 | - Disallow option :qpdf:ref:`--deterministic-id` to be used together |