From 1a0c320616a052d6c64308cb1ace0d2b099df95f Mon Sep 17 00:00:00 2001 From: wonst719 Date: Fri, 6 Nov 2020 20:25:42 +0900 Subject: [PATCH] SCUMM: Fix deepcode warning - use memcpy() instead of strcpy() to insert linebreak character --- engines/scumm/charset.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/engines/scumm/charset.cpp b/engines/scumm/charset.cpp index aa4d48c232e..a8d57f8b52b 100644 --- a/engines/scumm/charset.cpp +++ b/engines/scumm/charset.cpp @@ -542,7 +542,6 @@ int CharsetRenderer::getStringWidth(int arg, const byte *text) { void CharsetRenderer::addLinebreaks(int a, byte *str, int pos, int maxwidth) { int lastKoreanLineBreak = -1; - char tmpStrBuf[512]; int origPos = pos; int lastspace = -1; int curw = 1; @@ -550,6 +549,8 @@ void CharsetRenderer::addLinebreaks(int a, byte *str, int pos, int maxwidth) { int oldID = getCurID(); int code = (_vm->_game.heversion >= 80) ? 127 : 64; + int strLength = _vm->resStrLen(str); + while ((chr = str[pos++]) != 0) { if (_vm->_game.heversion >= 72) { if (chr == code) { @@ -658,8 +659,8 @@ void CharsetRenderer::addLinebreaks(int a, byte *str, int pos, int maxwidth) { lastspace = -1; lastKoreanLineBreak = -1; } else { - strcpy(tmpStrBuf, (char*)(str + lastKoreanLineBreak)); - strcpy((char*)(str + lastKoreanLineBreak + 1), tmpStrBuf); + byte* breakPtr = str + lastKoreanLineBreak; + memmove(breakPtr + 1, breakPtr, strLength - lastKoreanLineBreak + 1); str[lastKoreanLineBreak] = 0xD; curw = 1; pos = lastKoreanLineBreak + 1;