From 5b089605606ecbf6d7e9996b49f6cb0605deaa68 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 10 Jan 2021 15:12:06 +0100 Subject: [PATCH] Fix: [NewGRF] industry variables 69 to 71 did not check, whether the queried cargo is valid. --- src/newgrf_industries.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index 6579c5b09d..5e59634e84 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -311,6 +311,7 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout case 0x70: case 0x71: { CargoID cargo = GetCargoTranslation(parameter, this->ro.grffile); + if (cargo == CT_INVALID) return 0; int index = this->industry->GetCargoProducedIndex(cargo); if (index < 0) return 0; // invalid cargo switch (variable) { @@ -329,6 +330,7 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout case 0x6E: case 0x6F: { CargoID cargo = GetCargoTranslation(parameter, this->ro.grffile); + if (cargo == CT_INVALID) return 0; int index = this->industry->GetCargoAcceptedIndex(cargo); if (index < 0) return 0; // invalid cargo if (variable == 0x6E) return this->industry->last_cargo_accepted_at[index];