diff options
author | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2015-01-04 02:54:38 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2015-01-07 08:54:46 +0100 |
commit | 57fa90ba145455a48247b0fef110aa8f87a86a5d (patch) | |
tree | ff78dd95105c40c8a6263c2c1a6d446469e1190b | |
parent | 934d32a930047d0f221493f8974f1a2682f6779d (diff) |
fix invalid string access
Change-Id: I758ee4a53a80d89662bc081f435b01bc6f9c3087
-rw-r--r-- | sc/source/ui/app/inputhdl.cxx | 11 |
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(); |