diff options
author | m-holger <m-holger@kubitscheck.org> | 2022-11-12 19:10:16 +0100 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2023-03-19 21:07:53 +0100 |
commit | d8acccd5c8fff308a0010f787eedc594fa3e5ee9 (patch) | |
tree | 59591ebba800d6c043663f717189b0c373d58e48 /libqpdf/QPDF.cc | |
parent | 1e53da74bc3cf0cbd3bd3dae2890e83ad33c3ed4 (diff) | |
download | qpdf-d8acccd5c8fff308a0010f787eedc594fa3e5ee9.tar.zst |
Warn if catalog type entry is invalid (fixes #810)
Diffstat (limited to 'libqpdf/QPDF.cc')
-rw-r--r-- | libqpdf/QPDF.cc | 7 |
1 files changed, 7 insertions, 0 deletions
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; } |