cui/source/dialogs/hyphen.cxx |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 80a0d3b44cd6edb6419ab66588548ba169f2567b
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Sat Apr 15 20:25:36 2023 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Sun Apr 16 20:43:06 2023 +0200

    Resolves: tdf#153958 Hyphenation crashes with -Alte...
    
    nPos2 is 0 due to the -, so aLeft is empty, nPos is set to 0
    then incremented to 1, aLeft.replaceFirst is run after its end pos
    so crashes/asserts. Presumably we can do nothing meaningful here
    so skip if nPos2 is 0
    
    Change-Id: I09754c4b2567fe5c1b4c36de0b36ee99f575244d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150445
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/cui/source/dialogs/hyphen.cxx b/cui/source/dialogs/hyphen.cxx
index cc6666d7de8c..259ec5d03395 100644
--- a/cui/source/dialogs/hyphen.cxx
+++ b/cui/source/dialogs/hyphen.cxx
@@ -161,7 +161,7 @@ OUString SvxHyphenWordDialog::EraseUnusableHyphens_Impl()
         // 2) remove all hyphenation positions from the start that are not 
considered by the core
         const std::u16string_view aSearchRange( aTxt.subView( 0, nPos1 ) );
         size_t nPos2 = aSearchRange.rfind( '-' );  // the '-' position the 
core will use by default
-        if (nPos2 != std::u16string_view::npos )
+        if (nPos2 != std::u16string_view::npos && nPos2 != 0)
         {
             OUString aLeft( aSearchRange.substr( 0, nPos2 ) );
             nPos = 0;

Reply via email to