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;