LibCore+LibJS+LibWasm: Always use a real format string

It's generally considered a security issue to use non-format string
literals. We would likely just crash in practice, but let's avoid the
issue altogether.
This commit is contained in:
Timothy Flynn 2025-04-08 13:23:56 -04:00 committed by Tim Flynn
commit 64d290447c
Notes: github-actions[bot] 2025-04-09 00:01:33 +00:00
3 changed files with 11 additions and 11 deletions

View file

@ -384,7 +384,7 @@ void ArgsParser::print_version(FILE* file)
{ {
// FIXME: Allow applications to override version string for --version. // FIXME: Allow applications to override version string for --version.
// Especially useful for Lagom applications // Especially useful for Lagom applications
outln(file, Core::Version::read_long_version_string()); outln(file, "{}", Core::Version::read_long_version_string());
} }
void ArgsParser::add_option(Option&& option) void ArgsParser::add_option(Option&& option)

View file

@ -154,7 +154,7 @@ ErrorOr<void> print_type(JS::PrintContext& print_context, StringView name)
ErrorOr<void> print_separator(JS::PrintContext& print_context, bool& first) ErrorOr<void> print_separator(JS::PrintContext& print_context, bool& first)
{ {
TRY(js_out(print_context, first ? " "sv : ", "sv)); TRY(js_out(print_context, "{}", first ? " "sv : ", "sv));
first = false; first = false;
return {}; return {};
} }

View file

@ -137,13 +137,13 @@ void Printer::print(Wasm::DataSection::Data const& data)
[this](DataSection::Data::Passive const& value) { [this](DataSection::Data::Passive const& value) {
print_indent(); print_indent();
print("(passive init {}xu8 (", value.init.size()); print("(passive init {}xu8 (", value.init.size());
print(ByteString::join(' ', value.init, "{:x}"sv)); print("{}", ByteString::join(' ', value.init, "{:x}"sv));
print(")\n"); print(")\n");
}, },
[this](DataSection::Data::Active const& value) { [this](DataSection::Data::Active const& value) {
print_indent(); print_indent();
print("(active init {}xu8 (", value.init.size()); print("(active init {}xu8 (", value.init.size());
print(ByteString::join(' ', value.init, "{:x}"sv)); print("{}", ByteString::join(' ', value.init, "{:x}"sv));
print("\n"); print("\n");
{ {
TemporaryChange change { m_indent, m_indent + 1 }; TemporaryChange change { m_indent, m_indent + 1 };
@ -659,26 +659,26 @@ void Printer::print(Wasm::Value const& value, Wasm::ValueType const& type)
print_indent(); print_indent();
switch (type.kind()) { switch (type.kind()) {
case ValueType::I32: case ValueType::I32:
print(ByteString::formatted("{}", value.to<i32>())); print("{}", value.to<i32>());
break; break;
case ValueType::I64: case ValueType::I64:
print(ByteString::formatted("{}", value.to<i64>())); print("{}", value.to<i64>());
break; break;
case ValueType::F32: case ValueType::F32:
print(ByteString::formatted("{}", value.to<f32>())); print("{}", value.to<f32>());
break; break;
case ValueType::F64: case ValueType::F64:
print(ByteString::formatted("{}", value.to<f64>())); print("{}", value.to<f64>());
break; break;
case ValueType::V128: case ValueType::V128:
print(ByteString::formatted("v128({:x})", value.value())); print("v128({:x})", value.value());
break; break;
case ValueType::FunctionReference: case ValueType::FunctionReference:
case ValueType::ExternReference: case ValueType::ExternReference:
print(ByteString::formatted("addr({})", print("addr({})",
value.to<Reference>().ref().visit( value.to<Reference>().ref().visit(
[](Wasm::Reference::Null const&) { return ByteString("null"); }, [](Wasm::Reference::Null const&) { return ByteString("null"); },
[](auto const& ref) { return ByteString::number(ref.address.value()); }))); [](auto const& ref) { return ByteString::number(ref.address.value()); }));
break; break;
} }
TemporaryChange<size_t> change { m_indent, 0 }; TemporaryChange<size_t> change { m_indent, 0 };