--- a/saveload.c Fri Feb 04 07:52:12 2005 +0000
+++ b/saveload.c Fri Feb 04 13:23:29 2005 +0000
@@ -942,7 +942,11 @@
switch (t) {
case REF_ORDER: return GetOrder(r - 1);
- case REF_VEHICLE: return GetVehicle(r - 1);
+ case REF_VEHICLE: {
+ if (!AddBlockIfNeeded(&_vehicle_pool, r - 1))
+ error("Vehicles: failed loading savegame: too many vehicles");
+ return GetVehicle(r - 1);
+ }
case REF_STATION: {
if (!AddBlockIfNeeded(&_station_pool, r - 1))
error("Stations: failed loading savegame: too many stations");
@@ -962,6 +966,9 @@
and the index was not - 1.. correct for this */
if (r == INVALID_VEHICLE)
return NULL;
+
+ if (!AddBlockIfNeeded(&_vehicle_pool, r))
+ error("Vehicles: failed loading savegame: too many vehicles");
return GetVehicle(r);
}
default: