From bd79138c841c0076f7f45ae9a530f480aeec2633 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Wed, 11 Nov 2020 09:50:43 -0500 Subject: Treat direct page as runtime rather than logic error (fuzz issue 27393) --- libqpdf/QPDFObjectHandle.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libqpdf/QPDFObjectHandle.cc') diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 472ff4e8..90e1d2d2 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -1512,9 +1512,11 @@ QPDFObjectHandle::coalesceContentStreams() { // Should not be possible for a page object to not have an // owning PDF unless it was manually constructed in some - // incorrect way. - throw std::logic_error("coalesceContentStreams called on object" - " with no associated PDF file"); + // incorrect way. However, it can happen in a PDF file whose + // page structure is direct, which is against spec but still + // possible to hand construct, as in fuzz issue 27393. + throw std::runtime_error("coalesceContentStreams called on object" + " with no associated PDF file"); } QPDFObjectHandle new_contents = newStream(qpdf); this->replaceKey("/Contents", new_contents); -- cgit v1.2.3-54-g00ecf