summaryrefslogtreecommitdiff
path: root/i18npool/source/search
diff options
context:
space:
mode:
authorMatthew J. Francis <mjay.francis@gmail.com>2014-10-07 01:51:37 +0800
committerEike Rathke <erack@redhat.com>2014-10-07 17:48:47 +0000
commit555a7a601b33c18472be7e99b0f9c8acb05a82d7 (patch)
tree7a539d07a846c95bc07c8bcdf49bfb6d08b66bb1 /i18npool/source/search
parente1cbaebe7fe36690e192778c87b5eb63790017d7 (diff)
Avoid accessing 1 character after a string
Found while trying to reproduce fdo#83141, but not related to that - it just happened to trigger the relevant assert on a dbgutil build. The change to TextSearch::NSrchFrwrd() fixes the crash triggered by reproducing the above bug. The change to TextSearch::NSrchBkwrd() is by analogy but seems an equally good idea. Change-Id: I68c2c87b632dd53453f92394519a06f62e41bbad Reviewed-on: https://gerrit.libreoffice.org/11830 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'i18npool/source/search')
-rw-r--r--i18npool/source/search/textsearch.cxx4
1 files changed, 2 insertions, 2 deletions
diff --git a/i18npool/source/search/textsearch.cxx b/i18npool/source/search/textsearch.cxx
index ef8217b9726a..98aa1b6cc3f2 100644
--- a/i18npool/source/search/textsearch.cxx
+++ b/i18npool/source/search/textsearch.cxx
@@ -614,7 +614,7 @@ SearchResult TextSearch::NSrchFrwrd( const OUString& searchStr, sal_Int32 startP
bool bAtStart = !nCmpIdx;
bool bAtEnd = nFndEnd == endPos;
bool bDelimBefore = bAtStart || IsDelimiter( aStr, nCmpIdx-1 );
- bool bDelimBehind = IsDelimiter( aStr, nFndEnd );
+ bool bDelimBehind = bAtEnd || IsDelimiter( aStr, nFndEnd );
// * 1 -> only one word in the paragraph
// * 2 -> at begin of paragraph
// * 3 -> at end of paragraph
@@ -685,7 +685,7 @@ SearchResult TextSearch::NSrchBkwrd( const OUString& searchStr, sal_Int32 startP
sal_Int32 nFndStt = nCmpIdx - sSearchKey.getLength();
bool bAtStart = !nFndStt;
bool bAtEnd = nCmpIdx == startPos;
- bool bDelimBehind = IsDelimiter( aStr, nCmpIdx );
+ bool bDelimBehind = bAtEnd || IsDelimiter( aStr, nCmpIdx );
bool bDelimBefore = bAtStart || // begin of paragraph
IsDelimiter( aStr, nFndStt-1 );
// * 1 -> only one word in the paragraph