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:
Jonathan G Rennison 2023-12-14 15:41:31 +00:00 committed by GitHub
parent 12bb750128
commit 97b86b7147
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 3 deletions

View File

@ -1231,7 +1231,7 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara
}
default: {
StringParameters tmp_params(args, 1);
auto tmp_params = MakeParameters(args.GetNextParameter<int64_t>());
GetStringWithArgs(builder, cargo_str, tmp_params);
break;
}
@ -1245,7 +1245,7 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara
if (IsValidCargoID(cargo) && cargo >= CargoSpec::GetArraySize()) break;
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);
break;
}
@ -1405,7 +1405,7 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara
case SCC_DEPOT_NAME: { // {DEPOT}
VehicleType vt = args.GetNextParameter<VehicleType>();
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);
break;
}