From 10fe267176dfc1dfeb477da86e21af22eff30b1a Mon Sep 17 00:00:00 2001 From: Felix Kauselmann <2039670+selmf@users.noreply.github.com> Date: Tue, 9 Jan 2018 20:06:44 +0100 Subject: [PATCH] Restrict pdf page size to 3840x3840 to avoid OOM on bad pdf documents --- common/pdf_comic.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/common/pdf_comic.cpp b/common/pdf_comic.cpp index ecf5d9a5..36dc4e89 100644 --- a/common/pdf_comic.cpp +++ b/common/pdf_comic.cpp @@ -116,10 +116,13 @@ QImage PdfiumComic::getPage(const int page) } // TODO: make target DPI configurable - double width = (FPDF_GetPageWidth(pdfpage)/72)*150; - double height = (FPDF_GetPageHeight(pdfpage)/72)*150; - - image = QImage(width, height, QImage::Format_ARGB32);// QImage::Format_RGBX8888); + QSize pagesize((FPDF_GetPageWidth(pdfpage)/72)*150, + (FPDF_GetPageHeight(pdfpage)/72)*150); + // TODO: max render size too + if (pagesize.width() > 3840 || pagesize.height() > 3840) { + pagesize.scale(3840, 3840, Qt::KeepAspectRatio); + } + image = QImage(pagesize, QImage::Format_ARGB32);// QImage::Format_RGBX8888); if (image.isNull()) { // TODO report OOM error