From 4c267311ed7bedfd373db2afc12cad9757922ce1 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Fri, 25 Jun 2021 10:31:28 +0100 Subject: pdf import: handle out of memory / failure to duplicate page. Avoid some reported segv's from null pages. Change-Id: Ic336b36fb57dc70fff183cd5aa5f3f3ef4562674 Signed-off-by: Michael Meeks Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117855 Tested-by: Jenkins --- sd/source/filter/pdf/sdpdffilter.cxx | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'sd') diff --git a/sd/source/filter/pdf/sdpdffilter.cxx b/sd/source/filter/pdf/sdpdffilter.cxx index efa0a0bce0b5..9725bcc8b998 100644 --- a/sd/source/filter/pdf/sdpdffilter.cxx +++ b/sd/source/filter/pdf/sdpdffilter.cxx @@ -77,12 +77,17 @@ bool SdPdfFilter::Import() // Create the page and insert the Graphic. SdPage* pPage = mrDocument.GetSdPage(nPageNumber, PageKind::Standard); + if (!pPage) // failed to duplicate page, out of memory? + return false; // Make the page size match the rendered image. pPage->SetSize(aSizeHMM); SdrGrafObj* pSdrGrafObj = new SdrGrafObj(pPage->getSdrModelFromSdrPage(), rGraphic, tools::Rectangle(Point(), aSizeHMM)); + if (!pSdrGrafObj) // out of memory + return false; + pSdrGrafObj->SetResizeProtect(true); pSdrGrafObj->SetMoveProtect(true); -- cgit