# HG changeset patch # User peter1138 # Date 1127214453 0 # Node ID b4962381b5b551549458a151737a0b561bf16cc3 # Parent f0bf4adbd6202bca90a075b8e7febd1337f6b4b5 (svn r2965) Fix: newgrf: Add bounds checking to VehicleChangeInfo for vehicles and change station special case to vehicle special case. diff -r f0bf4adbd620 -r b4962381b5b5 newgrf.c --- a/newgrf.c Tue Sep 20 09:38:09 2005 +0000 +++ b/newgrf.c Tue Sep 20 11:07:33 2005 +0000 @@ -1046,10 +1046,13 @@ return; } - if (feature != GSF_STATION) + if (feature <= GSF_AIRCRAFT) { + if (engine + numinfo > _vehcounts[feature]) { + grfmsg(GMS_ERROR, "VehicleChangeInfo: Last engine ID %d out of bounds (max %d), skipping.", engine + numinfo, _vehcounts[feature]); + return; + } ei = &_engine_info[engine + _vehshifts[feature]]; - /* XXX - Should there not be a check to see if 'ei' is NULL - when it is used in the switch below?? -- TrueLight */ + } buf += 5;