From 8970acd8228bc589c9e337902484ffb8a7498873 Mon Sep 17 00:00:00 2001 From: zhaofangxun Date: Wed, 19 Aug 2026 15:52:33 +0800 Subject: [PATCH] fix: pass &error to QJsonDocument::fromJson MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Pass &error to QJsonDocument::fromJson in fromJsonString 2. Make the QJsonParseError error branch reachable, removing dead code 3. Malformed JSON now triggers qCWarning and returns invalid DPluginMetaData 4. Update SPDX copyright year to 2023 - 2026 Influence: 1. Load plugins with valid JSON metadata, verify normal plugin loading 2. Load a plugin with malformed JSON, verify qCWarning is logged 3. Verify malformed JSON plugin is skipped without crashing the shell fix: 向 QJsonDocument::fromJson 传入 &error 1. 向 fromJsonString 中的 QJsonDocument::fromJson 传入 &error 出参 2. 使 QJsonParseError 错误分支可达,消除死代码 3. 非法 JSON 现触发 qCWarning 并返回 invalid DPluginMetaData 4. 更新 SPDX 版权年份为 2023 - 2026 Influence: 1. 加载合法 JSON 元数据的插件,验证插件正常加载 2. 加载包含非法 JSON 的插件,验证触发 qCWarning 日志 3. 验证非法 JSON 插件被跳过且不影响 dde-shell 启动 Refs: DDE-132 --- frame/pluginmetadata.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frame/pluginmetadata.cpp b/frame/pluginmetadata.cpp index e16e74843..5ab8d2bb1 100644 --- a/frame/pluginmetadata.cpp +++ b/frame/pluginmetadata.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2023 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -123,7 +123,7 @@ DPluginMetaData DPluginMetaData::fromJsonFile(const QString &file) DPluginMetaData DPluginMetaData::fromJsonString(const QByteArray &data) { QJsonParseError error; - const QJsonObject metaData = QJsonDocument::fromJson(data).object(); + const QJsonObject metaData = QJsonDocument::fromJson(data, &error).object(); if (error.error) { qCWarning(dsLog) << "error parsing json data" << error.errorString(); return DPluginMetaData();