From 4d099da8d2ab9de871c45c35fd7c7afa18aac893 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Sat, 30 Dec 2017 13:57:38 +0000 Subject: ofz#4837 Null-dereference READ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I7e4cb934aeac32fa1170beb116e4600b5eb9389a Reviewed-on: https://gerrit.libreoffice.org/47197 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara (cherry picked from commit 9f8dd17b1e6ab5d5d07b61e0f85edea233f03d71) --- sw/source/filter/ww8/ww8graf.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx index d404d6c9c29c..e6e763f4123a 100644 --- a/sw/source/filter/ww8/ww8graf.cxx +++ b/sw/source/filter/ww8/ww8graf.cxx @@ -559,6 +559,15 @@ public: } }; +namespace +{ + bool IsValidSel(const EditEngine& rEngine, const ESelection& rSel) + { + const auto nParaCount = rEngine.GetParagraphCount(); + return rSel.nStartPara < nParaCount && rSel.nEndPara < nParaCount; + } +} + // InsertAttrsAsDrawingAttrs() sets attributes between StartCp and EndCp. // Style attributes are set as hard, paragraph and character attributes. void SwWW8ImplReader::InsertAttrsAsDrawingAttrs(WW8_CP nStartCp, WW8_CP nEndCp, @@ -733,6 +742,8 @@ void SwWW8ImplReader::InsertAttrsAsDrawingAttrs(WW8_CP nStartCp, WW8_CP nEndCp, { ESelection aSel(GetESelection(*m_pDrawEditEngine, aIter->GetStartPos()-nStartCp, aIter->GetEndPos()-nStartCp)); + if (!IsValidSel(*m_pDrawEditEngine, aSel)) + continue; OUString aString(m_pDrawEditEngine->GetText(aSel)); const sal_Int32 nOrigLen = aString.getLength(); WW8_CP nDummy(0); -- cgit v1.2.3