From d8acccd5c8fff308a0010f787eedc594fa3e5ee9 Mon Sep 17 00:00:00 2001 From: m-holger Date: Sat, 12 Nov 2022 18:10:16 +0000 Subject: Warn if catalog type entry is invalid (fixes #810) --- libqpdf/QPDF.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libqpdf/QPDF.cc') diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 69508b08..c6f6ae6e 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -2461,6 +2461,13 @@ QPDF::getRoot() QPDFObjectHandle root = this->m->trailer.getKey("/Root"); if (!root.isDictionary()) { throw damagedPDF("", 0, "unable to find /Root dictionary"); + } else if ( + // Check_mode is an interim solution to request #810 pending a more + // comprehensive review of the approach to more extensive checks and + // warning levels. + m->check_mode && !root.getKey("/Type").isNameAndEquals("/Catalog")) { + warn(damagedPDF("", 0, "catalog /Type entry missing or invalid")); + root.replaceKey("/Type", "/Catalog"_qpdf); } return root; } -- cgit v1.2.3-70-g09d2