diff options
author | Eike Rathke <erack@redhat.com> | 2015-04-13 18:06:46 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2015-04-13 19:56:30 +0000 |
commit | 468b868c6209e26ab29d83ccacd007fcf785402a (patch) | |
tree | 5b54a75d08fa8c64f1e711ad068ee7451f627250 /sc | |
parent | dee3f93a9e82fe320ce2de7078a32ecaa25e9c1b (diff) |
string access out of bounds
Another UniString to OUString conversion fallout.
Change-Id: I5e62b049da3e7f8b5a892ea6aae7110a33564a46
(cherry picked from commit 9f52efa43b2d65c0b6c92790cc2859e752bf975f)
Reviewed-on: https://gerrit.libreoffice.org/15287
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/core/tool/interpr1.cxx | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index c77b72ab1ab3..55917d7154a9 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -3254,15 +3254,20 @@ void ScInterpreter::ScCode() { //2do: make it full range unicode? OUString aStr = GetString().getString(); - //"classic" ByteString conversion flags - const sal_uInt32 convertFlags = - RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE | - RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE | - RTL_UNICODETOTEXT_FLAGS_FLUSH | - RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT | - RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT | - RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE; - PushInt( (unsigned char) OUStringToOString(OUString(aStr[0]), osl_getThreadTextEncoding(), convertFlags).toChar() ); + if (aStr.isEmpty()) + PushInt(0); + else + { + //"classic" ByteString conversion flags + const sal_uInt32 convertFlags = + RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE | + RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE | + RTL_UNICODETOTEXT_FLAGS_FLUSH | + RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT | + RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT | + RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE; + PushInt( (unsigned char) OUStringToOString(OUString(aStr[0]), osl_getThreadTextEncoding(), convertFlags).toChar() ); + } } |