From 5bca0f272c61014a78584368e15d6b1e29c693ec Mon Sep 17 00:00:00 2001 From: Eism Date: Thu, 2 Oct 2025 15:54:17 +0200 Subject: [PATCH] fixed a crash when accessing an invalid json object --- src/framework/global/serialization/json.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/framework/global/serialization/json.cpp b/src/framework/global/serialization/json.cpp index c00bbb615abd7..80d39b6a4276c 100644 --- a/src/framework/global/serialization/json.cpp +++ b/src/framework/global/serialization/json.cpp @@ -602,22 +602,38 @@ bool JsonObject::isValid() const bool JsonObject::empty() const { + if (!isValid()) { + return true; + } + return object_const(m_data).size() == 0; } size_t JsonObject::size() const { + if (!isValid()) { + return 0; + } + return object_const(m_data).size(); } bool JsonObject::contains(const std::string& key) const { + if (!isValid()) { + return false; + } + const picojson::object& o = object_const(m_data); return o.find(key) != o.cend(); } JsonValue JsonObject::value(const std::string& key, JsonValue def) const { + if (!isValid()) { + return def; + } + const picojson::object& o = object_const(m_data); auto it = o.find(key); if (it != o.cend()) {