1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 04:37:34 +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:
Timothy Flynn 2023-10-31 16:02:26 -04:00 committed by Tim Flynn
parent 53d73b95ce
commit f630a5ca71
4 changed files with 3 additions and 9 deletions

View file

@ -36,7 +36,6 @@ public:
static ErrorOr<JsonValue> from_string(StringView);
JsonValue() = default;
explicit JsonValue(Type);
~JsonValue() { clear(); }
JsonValue(JsonValue const&);