summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2015-01-04 02:54:38 +0100
committerMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2015-01-07 08:54:46 +0100
commit57fa90ba145455a48247b0fef110aa8f87a86a5d (patch)
treeff78dd95105c40c8a6263c2c1a6d446469e1190b
parent934d32a930047d0f221493f8974f1a2682f6779d (diff)
fix invalid string access
Change-Id: I758ee4a53a80d89662bc081f435b01bc6f9c3087
-rw-r--r--sc/source/ui/app/inputhdl.cxx11
1 files changed, 8 insertions, 3 deletions
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index bd071180463d..180c8643b5b9 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -1034,11 +1034,16 @@ bool ScInputHandler::GetFuncName( OUString& aStart, OUString& aResult )
return false; // last character is not part of any function name, quit
::std::vector<sal_Unicode> aTemp;
- while ( nPos >= 0 && p != maFormulaChar.end() )
+ aTemp.push_back( c );
+ for(sal_Int32 i = nPos - 1; i >= 0; --i)
{
- aTemp.push_back( c );
- c = aStart[ --nPos ];
+ c = aStart[ i ];
p = maFormulaChar.find( c );
+
+ if (p == maFormulaChar.end())
+ break;
+
+ aTemp.push_back( c );
}
::std::vector<sal_Unicode>::reverse_iterator rIt = aTemp.rbegin();