From 178f995fc2d0dd0be4ea3ba676cbcc8ffd22f29b Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sun, 31 Jan 2021 07:46:13 -0500 Subject: Recover from exceptions during filtering for inline images --- libqpdf/QPDFPageObjectHelper.cc | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'libqpdf/QPDFPageObjectHelper.cc') diff --git a/libqpdf/QPDFPageObjectHelper.cc b/libqpdf/QPDFPageObjectHelper.cc index 07700a66..298da481 100644 --- a/libqpdf/QPDFPageObjectHelper.cc +++ b/libqpdf/QPDFPageObjectHelper.cc @@ -501,8 +501,20 @@ QPDFPageObjectHelper::externalizeInlineImages(size_t min_size, bool shallow) QPDFObjectHandle::parse("<< /XObject << >> >>")); InlineImageTracker iit(this->oh.getOwningQPDF(), min_size, resources); Pl_Buffer b("new page content"); - filterContents(&iit, &b); - if (iit.any_images) + bool filtered = false; + try + { + filterContents(&iit, &b); + filtered = true; + } + catch (std::exception& e) + { + this->oh.warnIfPossible( + std::string("Unable to filter content stream: ") + e.what() + + "; not attempting to externalize inline images" + " from this stream"); + } + if (filtered && iit.any_images) { if (this->oh.isFormXObject()) { -- cgit v1.2.3-54-g00ecf