QUEEN: Silence GCC 7 warnings about potential buffer overflow

Use snprintf() instead of sprintf() to limit how much is written
to the buffer. Note that there are other places where it looks
like it could overflow, but they did not trigger warnings and I'm
guessing that it doesn't overflow in reality.
This commit is contained in:
Torbjörn Andersson 2017-08-06 20:04:40 +02:00
parent 9ac4a77233
commit 0b07029274

View File

@ -61,7 +61,7 @@ void CmdText::displayTemp(InkColor color, Verb v) {
void CmdText::displayTemp(InkColor color, const char *name, bool outlined) {
char temp[MAX_COMMAND_LEN];
sprintf(temp, "%s %s", _command, name);
snprintf(temp, MAX_COMMAND_LEN, "%s %s", _command, name);
display(color, temp, outlined);
}
@ -87,7 +87,7 @@ public:
virtual void displayTemp(InkColor color, const char *name, bool outlined) {
char temp[MAX_COMMAND_LEN];
sprintf(temp, "%s %s", name, _command);
snprintf(temp, MAX_COMMAND_LEN, "%s %s", name, _command);
display(color, temp, outlined);
}
@ -119,9 +119,9 @@ public:
char temp[MAX_COMMAND_LEN];
// don't show a space after the goto and give commands in the Greek version
if (_command[1] != (char)-34 && !(_command[1] == (char)-2 && strlen(_command) > 5))
sprintf(temp, "%s %s", _command, name);
snprintf(temp, MAX_COMMAND_LEN, "%s %s", _command, name);
else
sprintf(temp, "%s%s", _command, name);
snprintf(temp, MAX_COMMAND_LEN, "%s%s", _command, name);
display(color, temp, outlined);
}