From 9957675a660000d7e975d0e7faffc49c03279a7c Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 9 Jul 2022 11:25:17 +0200 Subject: [PATCH] Fix: autoreplace command did not validate the vehicle argument properly (#9946) It first checked if the vehicle was in the depot, which for some types is only a valid action for the primary vehicle. Afterwards, it checked if the vehicle was a primary vehicle. --- src/autoreplace_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/autoreplace_cmd.cpp b/src/autoreplace_cmd.cpp index eba804788e..73f796cb73 100644 --- a/src/autoreplace_cmd.cpp +++ b/src/autoreplace_cmd.cpp @@ -725,7 +725,6 @@ CommandCost CmdAutoreplaceVehicle(DoCommandFlag flags, VehicleID veh_id) CommandCost ret = CheckOwnership(v->owner); if (ret.Failed()) return ret; - if (!v->IsChainInDepot()) return CMD_ERROR; if (v->vehstatus & VS_CRASHED) return CMD_ERROR; bool free_wagon = false; @@ -737,6 +736,7 @@ CommandCost CmdAutoreplaceVehicle(DoCommandFlag flags, VehicleID veh_id) } else { if (!v->IsPrimaryVehicle()) return CMD_ERROR; } + if (!v->IsChainInDepot()) return CMD_ERROR; const Company *c = Company::Get(_current_company); bool wagon_removal = c->settings.renew_keep_length;