aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Turner2010-06-17 03:22:52 +0000
committerDavid Turner2010-06-17 03:22:52 +0000
commite5f609a40ab68cad298b75a3d69a7d61e7b79e70 (patch)
treef289df2e97805c16827f0c2a49eed128decd6812
parent2cba994bb4179cbed1c54921ff825bc4f7735efb (diff)
downloadscummvm-rg350-e5f609a40ab68cad298b75a3d69a7d61e7b79e70.tar.gz
scummvm-rg350-e5f609a40ab68cad298b75a3d69a7d61e7b79e70.tar.bz2
scummvm-rg350-e5f609a40ab68cad298b75a3d69a7d61e7b79e70.zip
Correction for Invalid reads in Translation iconv calls reported by Valgrind.
The string terminators were omitted from the iconv call and not restored. svn-id: r49916
-rw-r--r--common/translation.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/common/translation.cpp b/common/translation.cpp
index 3119c074ab..925da26407 100644
--- a/common/translation.cpp
+++ b/common/translation.cpp
@@ -128,11 +128,11 @@ String TranslationManager::getTranslation(const String &message) {
#ifdef USE_TERMCONV
bool TranslationManager::convert(const char *message) {
// Preparing conversion origin
- size_t len = strlen(message);
+ size_t len = strlen(message) + 1;
#ifdef ICONV_USES_CONST
const char **pmsg = &message;
#else
- char *msgcpy = new char[len + 1];
+ char *msgcpy = new char[len];
strcpy(msgcpy, message);
char *msg = msgcpy;
char **pmsg = &msg;
@@ -158,7 +158,7 @@ bool TranslationManager::convert(const char *message) {
const char *TranslationManager::convertTerm(const char *message) {
#ifdef USE_TERMCONV
- size_t len = strlen(message);
+ size_t len = strlen(message) + 1;
if (!_convmsg) {
_sizeconv = len * 2;
_convmsg = new char[_sizeconv];