diff options
author | Eugene Sandulenko | 2013-10-17 13:43:21 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2013-10-17 13:43:21 +0300 |
commit | bc082166596597b894b169ea82d06129c690e8bb (patch) | |
tree | ab8d5f3462641dec3f1b208b94647b89cdb47dae /engines/drascula | |
parent | 66e683039510ce0d1b08995d902a60e0ceef4e25 (diff) | |
download | scummvm-rg350-bc082166596597b894b169ea82d06129c690e8bb.tar.gz scummvm-rg350-bc082166596597b894b169ea82d06129c690e8bb.tar.bz2 scummvm-rg350-bc082166596597b894b169ea82d06129c690e8bb.zip |
DRASCULA: Fix potential buffer overrun. CID 1003310
Diffstat (limited to 'engines/drascula')
-rw-r--r-- | engines/drascula/graphics.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/engines/drascula/graphics.cpp b/engines/drascula/graphics.cpp index b28de669b6..a28ca8a1cb 100644 --- a/engines/drascula/graphics.cpp +++ b/engines/drascula/graphics.cpp @@ -336,7 +336,7 @@ void DrasculaEngine::centerText(const char *message, int textX, int textY) { // original starts printing 4 lines above textY int y = CLIP<int>(textY - (4 * CHAR_HEIGHT), 0, 320); - strcpy(msg, message); + strlcpy(msg, message, 200); // If the message fits on screen as-is, just print it here if (textFitsCentered(msg, textX)) { @@ -363,8 +363,8 @@ void DrasculaEngine::centerText(const char *message, int textX, int textY) { while (curWord != NULL) { // Check if the word and the current line fit on screen if (tmpMessageLine[0] != '\0') - strcat(tmpMessageLine, " "); - strcat(tmpMessageLine, curWord); + strlcat(tmpMessageLine, " ", 200); + strlcat(tmpMessageLine, curWord, 200); if (textFitsCentered(tmpMessageLine, textX)) { // Line fits, so add the word to the current message line strcpy(messageLine, tmpMessageLine); @@ -374,8 +374,8 @@ void DrasculaEngine::centerText(const char *message, int textX, int textY) { // If it goes off screen, print_abc will adjust it x = CLIP<int>(textX - strlen(messageLine) * CHAR_WIDTH / 2, 60, 255); print_abc(messageLine, x, y + curLine * CHAR_HEIGHT); - strcpy(messageLine, curWord); - strcpy(tmpMessageLine, curWord); + strlcpy(messageLine, curWord, 200); + strlcpy(tmpMessageLine, curWord, 200); curLine++; } |