summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorAshod Nakashian <ashod.nakashian@collabora.co.uk>2019-07-24 13:16:35 -0400
committerMarco Cecchetti <marco.cecchetti@collabora.com>2020-05-29 14:38:41 +0200
commitaae3b007935deb08adfd753c25948e446566b6fb (patch)
tree8156851aa585dde18673c011bada8fc3a1fcb239 /editeng
parent6665a9970f3c760d340b93b9dcbbd29d8f0cf6fd (diff)
editeng: detect invalid paragraphs when drawing
This prevents live-lock (endless loop) in case the paragraphs are invalid. Change-Id: I77cc7818dabc8e518bd7ca3f5161d46ba3fe50b4 (cherry picked from commit deab77cb71c01171d0f8284339627ed33798c3a1) Reviewed-on: https://gerrit.libreoffice.org/85002 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95105 Tested-by: Marco Cecchetti <marco.cecchetti@collabora.com> Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/editeng/impedit.cxx6
1 files changed, 4 insertions, 2 deletions
diff --git a/editeng/source/editeng/impedit.cxx b/editeng/source/editeng/impedit.cxx
index 6c7360d41fea..56970d8ea6cf 100644
--- a/editeng/source/editeng/impedit.cxx
+++ b/editeng/source/editeng/impedit.cxx
@@ -278,8 +278,10 @@ void ImpEditView::DrawSelectionXOR( EditSelection aTmpSel, vcl::Region* pRegion,
ContentNode* pStartNode = aTmpSel.Min().GetNode();
ContentNode* pEndNode = aTmpSel.Max().GetNode();
- sal_Int32 nStartPara = pEditEngine->GetEditDoc().GetPos( pStartNode );
- sal_Int32 nEndPara = pEditEngine->GetEditDoc().GetPos( pEndNode );
+ const sal_Int32 nStartPara = pEditEngine->GetEditDoc().GetPos(pStartNode);
+ const sal_Int32 nEndPara = pEditEngine->GetEditDoc().GetPos(pEndNode);
+ if (nStartPara == EE_PARA_NOT_FOUND || nEndPara == EE_PARA_NOT_FOUND)
+ return;
for ( sal_Int32 nPara = nStartPara; nPara <= nEndPara; nPara++ )
{
ParaPortion* pTmpPortion = pEditEngine->GetParaPortions().SafeGetObject( nPara );