mirror of https://github.com/OpenTTD/OpenTTD.git
Codechange: Use MakeParameters with GetNextParameter in FormatString (#11583)
Instead of StringParameters subspan, to avoid GSs being able to cause subspan boundary assertion failures
This commit is contained in:
parent
12bb750128
commit
97b86b7147
|
@ -1231,7 +1231,7 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara
|
||||||
}
|
}
|
||||||
|
|
||||||
default: {
|
default: {
|
||||||
StringParameters tmp_params(args, 1);
|
auto tmp_params = MakeParameters(args.GetNextParameter<int64_t>());
|
||||||
GetStringWithArgs(builder, cargo_str, tmp_params);
|
GetStringWithArgs(builder, cargo_str, tmp_params);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1245,7 +1245,7 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara
|
||||||
if (IsValidCargoID(cargo) && cargo >= CargoSpec::GetArraySize()) break;
|
if (IsValidCargoID(cargo) && cargo >= CargoSpec::GetArraySize()) break;
|
||||||
|
|
||||||
StringID cargo_str = !IsValidCargoID(cargo) ? STR_QUANTITY_N_A : CargoSpec::Get(cargo)->quantifier;
|
StringID cargo_str = !IsValidCargoID(cargo) ? STR_QUANTITY_N_A : CargoSpec::Get(cargo)->quantifier;
|
||||||
StringParameters tmp_args(args, 1);
|
auto tmp_args = MakeParameters(args.GetNextParameter<int64_t>());
|
||||||
GetStringWithArgs(builder, cargo_str, tmp_args);
|
GetStringWithArgs(builder, cargo_str, tmp_args);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1405,7 +1405,7 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara
|
||||||
case SCC_DEPOT_NAME: { // {DEPOT}
|
case SCC_DEPOT_NAME: { // {DEPOT}
|
||||||
VehicleType vt = args.GetNextParameter<VehicleType>();
|
VehicleType vt = args.GetNextParameter<VehicleType>();
|
||||||
if (vt == VEH_AIRCRAFT) {
|
if (vt == VEH_AIRCRAFT) {
|
||||||
StringParameters tmp_params = StringParameters(args, 1);
|
auto tmp_params = MakeParameters(args.GetNextParameter<StationID>());
|
||||||
GetStringWithArgs(builder, STR_FORMAT_DEPOT_NAME_AIRCRAFT, tmp_params);
|
GetStringWithArgs(builder, STR_FORMAT_DEPOT_NAME_AIRCRAFT, tmp_params);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue