(svn r23804) -Fix: [NewGRF] Make string code 80 more secure by not crashing when it's used in strings where it's not supposed to be used

This commit is contained in:
yexo 2012-01-15 13:17:02 +00:00
parent 8e68a442b9
commit 15292fa080
2 changed files with 2 additions and 2 deletions

View File

@ -1065,7 +1065,7 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const
case SCC_NEWGRF_UNPRINT: *buff = max(*buff - Utf8Consume(str), buf_start); break; case SCC_NEWGRF_UNPRINT: *buff = max(*buff - Utf8Consume(str), buf_start); break;
case SCC_NEWGRF_PRINT_WORD_STRING_ID: case SCC_NEWGRF_PRINT_WORD_STRING_ID:
*argv = TTDPStringIDToOTTDStringIDMapping(_newgrf_textrefstack.PopUnsignedWord()); *argv = _newgrf_textrefstack.PopUnsignedWord();
break; break;
} }
} }

View File

@ -838,7 +838,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
} }
case SCC_NEWGRF_PRINT_WORD_STRING_ID: { case SCC_NEWGRF_PRINT_WORD_STRING_ID: {
StringID substr = args->GetInt32(SCC_NEWGRF_PRINT_WORD_STRING_ID); StringID substr = TTDPStringIDToOTTDStringIDMapping(args->GetInt32(SCC_NEWGRF_PRINT_WORD_STRING_ID));
str_stack.push(GetStringPtr(substr)); str_stack.push(GetStringPtr(substr));
case_index = next_substr_case_index; case_index = next_substr_case_index;
next_substr_case_index = 0; next_substr_case_index = 0;