mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 20:17:44 +00:00
AK+LibJS: Remove error-prone JsonValue constructor
Consider the following: JsonValue value { JsonValue::Type::Object }; value.as_object().set("foo"sv, "bar"sv); The JsonValue(Type) constructor does not initialize the underlying union that stores its value. Thus JsonValue::as_object() will A) refer to an uninitialized union member, B) deference that member. This constructor only has 2 users, both of which initialize the type to Type::Null. Rather than implementing unused functionality here, replace those uses with the default JsonValue constructor, and remove the faulty constructor.
This commit is contained in:
parent
53d73b95ce
commit
f630a5ca71
4 changed files with 3 additions and 9 deletions
|
@ -753,7 +753,7 @@ int main(int argc, char** argv)
|
|||
if (!output.contains("Test262:AsyncTestComplete"sv) || output.contains("Test262:AsyncTestFailure"sv)) {
|
||||
result_object.set("async_fail", true);
|
||||
if (!first_output.has_value())
|
||||
result_object.set("output", JsonValue { AK::JsonValue::Type::Null });
|
||||
result_object.set("output", JsonValue {});
|
||||
|
||||
passed = false;
|
||||
}
|
||||
|
@ -778,7 +778,7 @@ int main(int argc, char** argv)
|
|||
if (!output.contains("Test262:AsyncTestComplete"sv) || output.contains("Test262:AsyncTestFailure"sv)) {
|
||||
result_object.set("async_fail", true);
|
||||
if (!first_output.has_value())
|
||||
result_object.set("output", JsonValue { AK::JsonValue::Type::Null });
|
||||
result_object.set("output", JsonValue {});
|
||||
|
||||
passed = false;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue