(svn r4510) - NewGRF bounds checking:

- check Engine ID is within range
  - don't try setting a vehicle name if the string id is not a valid Engine ID
This commit is contained in:
peter1138 2006-04-21 20:59:04 +00:00
parent f8b6525765
commit 0b3659b41a
2 changed files with 6 additions and 2 deletions

View File

@ -1761,9 +1761,11 @@ static void VehicleNewName(byte *buf, int len)
case GSF_TRAIN: case GSF_TRAIN:
case GSF_ROAD: case GSF_ROAD:
case GSF_SHIP: case GSF_SHIP:
case GSF_AIRCRAFT: case GSF_AIRCRAFT: {
SetCustomEngineName(id, AddGRFString(_cur_grffile->grfid, id, lang, name)); StringID string = AddGRFString(_cur_grffile->grfid, id, lang, name);
if (id < TOTAL_NUM_ENGINES) SetCustomEngineName(id, string);
break; break;
}
#if 0 #if 0
case GSF_STATION: case GSF_STATION:

View File

@ -102,6 +102,7 @@ static SpriteGroup *engine_custom_sprites[TOTAL_NUM_ENGINES][NUM_GLOBAL_CID];
void SetCustomEngineSprites(EngineID engine, byte cargo, SpriteGroup *group) void SetCustomEngineSprites(EngineID engine, byte cargo, SpriteGroup *group)
{ {
assert(engine < TOTAL_NUM_ENGINES);
if (engine_custom_sprites[engine][cargo] != NULL) { if (engine_custom_sprites[engine][cargo] != NULL) {
DEBUG(grf, 6)("SetCustomEngineSprites: engine `%d' cargo `%d' already has group -- replacing.", engine, cargo); DEBUG(grf, 6)("SetCustomEngineSprites: engine `%d' cargo `%d' already has group -- replacing.", engine, cargo);
} }
@ -610,6 +611,7 @@ StringID _engine_custom_names[TOTAL_NUM_ENGINES];
void SetCustomEngineName(EngineID engine, StringID name) void SetCustomEngineName(EngineID engine, StringID name)
{ {
assert(engine < lengthof(_engine_custom_names));
_engine_custom_names[engine] = name; _engine_custom_names[engine] = name;
} }