From d11553e49ab9ecadd1203aeead3b968613092ca8 Mon Sep 17 00:00:00 2001 From: m-holger Date: Wed, 27 Aug 2025 18:43:06 +0100 Subject: [PATCH] Enhance `QPDFEmbeddedFileDocumentHelper` with stricter validation and value checking --- libqpdf/QPDFEmbeddedFileDocumentHelper.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libqpdf/QPDFEmbeddedFileDocumentHelper.cc b/libqpdf/QPDFEmbeddedFileDocumentHelper.cc index 1da97d4..552a389 100644 --- a/libqpdf/QPDFEmbeddedFileDocumentHelper.cc +++ b/libqpdf/QPDFEmbeddedFileDocumentHelper.cc @@ -48,7 +48,12 @@ QPDFEmbeddedFileDocumentHelper::QPDFEmbeddedFileDocumentHelper(QPDF& qpdf) : if (names.isDictionary()) { auto embedded_files = names.getKey("/EmbeddedFiles"); if (embedded_files.isDictionary()) { - m->embedded_files = std::make_unique(embedded_files, qpdf); + m->embedded_files = std::make_unique( + embedded_files, + qpdf, + [](QPDFObjectHandle const& o) -> bool { return o.isDictionary(); }, + true); + m->embedded_files->validate(); } } } @@ -74,7 +79,8 @@ QPDFEmbeddedFileDocumentHelper::initEmbeddedFiles() if (!embedded_files.isDictionary()) { auto nth = QPDFNameTreeObjectHelper::newEmpty(qpdf); names.replaceKey("/EmbeddedFiles", nth.getObjectHandle()); - m->embedded_files = std::make_unique(nth); + m->embedded_files = std::make_unique( + nth, qpdf, [](QPDFObjectHandle const& o) -> bool { return o.isDictionary(); }, true); } } -- libgit2 0.21.4