diff options
author | alberth <alberth@openttd.org> | 2014-07-12 17:04:14 +0000 |
---|---|---|
committer | alberth <alberth@openttd.org> | 2014-07-12 17:04:14 +0000 |
commit | 8fe8765aaa93e0c992305a7a9c4b21dd9c1842c7 (patch) | |
tree | dd7dcc52320f1a73f9fcb2af909e51fa6c1b36fb /src/cargomonitor.h | |
parent | 98194e7b6a2ad0615b8c68fa368e246f470ea09d (diff) | |
download | openttd-8fe8765aaa93e0c992305a7a9c4b21dd9c1842c7.tar.xz |
(svn r26685) -Fix: Tighten parameter bound checks on GSCargoMonitor functions, and return -1 on out-of-bound parameters.
Diffstat (limited to 'src/cargomonitor.h')
-rw-r--r-- | src/cargomonitor.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/cargomonitor.h b/src/cargomonitor.h index ce9a8e5d6..061a1821a 100644 --- a/src/cargomonitor.h +++ b/src/cargomonitor.h @@ -16,6 +16,7 @@ #include "company_func.h" #include "industry.h" #include "town.h" +#include "core/overflowsafe_type.hpp" #include <map> struct Station; @@ -31,7 +32,7 @@ struct Station; typedef uint32 CargoMonitorID; ///< Type of the cargo monitor number. /** Map type for storing and updating active cargo monitor numbers and their amounts. */ -typedef std::map<CargoMonitorID, uint32> CargoMonitorMap; +typedef std::map<CargoMonitorID, OverflowSafeInt32> CargoMonitorMap; extern CargoMonitorMap _cargo_pickups; extern CargoMonitorMap _cargo_deliveries; @@ -141,8 +142,8 @@ static inline TownID DecodeMonitorTown(CargoMonitorID num) void ClearCargoPickupMonitoring(CompanyID company = INVALID_OWNER); void ClearCargoDeliveryMonitoring(CompanyID company = INVALID_OWNER); -uint32 GetDeliveryAmount(CargoMonitorID monitor, bool keep_monitoring); -uint32 GetPickupAmount(CargoMonitorID monitor, bool keep_monitoring); +int32 GetDeliveryAmount(CargoMonitorID monitor, bool keep_monitoring); +int32 GetPickupAmount(CargoMonitorID monitor, bool keep_monitoring); void AddCargoDelivery(CargoID cargo_type, CompanyID company, uint32 amount, SourceType src_type, SourceID src, const Station *st); #endif /* CARGOMONITOR_H */ |