[Libreoffice-commits] core.git: Branch 'distro/lhm/libreoffice-6-1+backports' - sw/source

Michael Stahl (via logerrit) logerrit at kemper.freedesktop.org
Tue Sep 24 12:04:03 UTC 2019


 sw/source/core/text/txtfrm.cxx |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit dad415de18639f04750d776b2443090be69981c5
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Mon Sep 23 17:38:33 2019 +0200
Commit:     Michael Stahl <michael.stahl at cib.de>
CommitDate: Tue Sep 24 14:03:20 2019 +0200

    tdf#127652 sw_redlinehide: don't set invalid SwTextFrame offsets
    
    The obvious problem here is that if a deletion spans multiple text
    frames, the offset of the 2nd one must not be reduced lower than the
    start position of the deletion; apparently this fixes the subsequent
    crashes with stale text portions having now invalid indexes into the
    string.
    
    (regression from 0acde7514e666fc04805fd36503bd174162336ca)
    
    Change-Id: Iaf9e2c5ca06ed36dc0e8611891d19c22f7661d34
    Reviewed-on: https://gerrit.libreoffice.org/79421
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>
    (cherry picked from commit 9ec2c77046901fdacca77753052b54c81e6bc82c)
    Reviewed-on: https://gerrit.libreoffice.org/79434
    Tested-by: Michael Stahl <michael.stahl at cib.de>

diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx
index 90a4261fbd7d..b43fa47a6683 100644
--- a/sw/source/core/text/txtfrm.cxx
+++ b/sw/source/core/text/txtfrm.cxx
@@ -1808,7 +1808,8 @@ static void lcl_ModifyOfst(SwTextFrame & rFrame,
     assert(nLen != TextFrameIndex(COMPLETE_STRING));
     if (rFrame.IsFollow() && nPos < rFrame.GetOfst())
     {
-        rFrame.ManipOfst( std::max(TextFrameIndex(0), op(rFrame.GetOfst(), nLen)) );
+        rFrame.ManipOfst( std::max(nPos, op(rFrame.GetOfst(), nLen)) );
+        assert(sal_Int32(rFrame.GetOfst()) <= rFrame.GetText().getLength());
     }
 }
 


More information about the Libreoffice-commits mailing list