[Libreoffice-commits] core.git: sw/source

Caolán McNamara caolanm at redhat.com
Thu Dec 22 15:43:05 UTC 2016


 sw/source/core/text/inftxt.cxx |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

New commits:
commit 2085d8203b0ff49b6e43ff900f497fb5343708d8
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Dec 22 15:42:10 2016 +0000

    avoid crash in 130+ odt export tests
    
    e.g. fdo44181-1.ott to odt
    
    Change-Id: I23403415378ddf50ff007fb4b5d88b4009668bf6

diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx
index 71b99b1..d12cdb7 100644
--- a/sw/source/core/text/inftxt.cxx
+++ b/sw/source/core/text/inftxt.cxx
@@ -1196,14 +1196,14 @@ void SwTextPaintInfo::DrawBackBrush( const SwLinePortion &rPor ) const
             nLen = pPos->GetLen();
             for ( int i = nIdx; i < (nIdx + nLen); ++i )
             {
-                if ( GetText()[i] == CH_TXTATR_NEWLINE )
+                if (i < GetText().getLength() && GetText()[i] == CH_TXTATR_NEWLINE)
                 {
                     if ( i >= (GetIdx() + rPor.GetLen()) )
                     {
                         goto drawcontinue;
                     }
                 }
-                if ( GetText()[i] != CH_BLANK )
+                if (i >= GetText().getLength() || GetText()[i] != CH_BLANK)
                 {
                     draw = true;
                     if ( i >= (GetIdx() + rPor.GetLen()) )
@@ -1230,11 +1230,11 @@ void SwTextPaintInfo::DrawBackBrush( const SwLinePortion &rPor ) const
             nLen = pPos->GetLen();
             for ( int i = (nIdx + nLen - 1); i >= nIdx; --i )
             {
-                if ( GetText()[i] == CH_TXTATR_NEWLINE )
+                if (i < GetText().getLength() && GetText()[i] == CH_TXTATR_NEWLINE)
                 {
                     continue;
                 }
-                if ( GetText()[i] != CH_BLANK )
+                if (i >= GetText().getLength() || GetText()[i] != CH_BLANK)
                 {
                     sal_uInt16 nOldWidth = rPor.Width();
                     sal_uInt16 nNewWidth = GetTextSize( m_pOut, nullptr, GetText(), nIdx, (i + 1 - nIdx) ).Width();


More information about the Libreoffice-commits mailing list