aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorTrial97 <alexandru.tripon97@gmail.com>2023-08-21 21:30:44 +0300
committerTrial97 <alexandru.tripon97@gmail.com>2023-08-21 21:30:44 +0300
commit7acfe36a625e2f0c4fb5ba9c11a15be45484a4f6 (patch)
tree99b79662f0521f6b07ec7ff9802a1d55cba9c771 /launcher
parentfcb436f1f469d6de09a334f3e131b87b09c9821e (diff)
downloadPrismLauncher-7acfe36a625e2f0c4fb5ba9c11a15be45484a4f6.tar.gz
PrismLauncher-7acfe36a625e2f0c4fb5ba9c11a15be45484a4f6.tar.bz2
PrismLauncher-7acfe36a625e2f0c4fb5ba9c11a15be45484a4f6.zip
fixed httpmetacache load
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
Diffstat (limited to 'launcher')
-rw-r--r--launcher/net/HttpMetaCache.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/launcher/net/HttpMetaCache.cpp b/launcher/net/HttpMetaCache.cpp
index 7809d40f..f37bc0bf 100644
--- a/launcher/net/HttpMetaCache.cpp
+++ b/launcher/net/HttpMetaCache.cpp
@@ -218,9 +218,24 @@ void HttpMetaCache::Load()
if (!index.open(QIODevice::ReadOnly))
return;
- QJsonDocument json = QJsonDocument::fromJson(index.readAll());
+ QJsonParseError parseError;
+ QJsonDocument json = QJsonDocument::fromJson(index.readAll(), &parseError);
+
+ // Fail if the JSON is invalid.
+ if (parseError.error != QJsonParseError::NoError) {
+ qCritical() << QString("Failed to parse HttpMetaCache file: %1 at offset %2")
+ .arg(parseError.errorString(), QString::number(parseError.offset))
+ .toUtf8();
+ return;
+ }
+
+ // Make sure the root is an object.
+ if (!json.isObject()) {
+ qCritical() << "HttpMetaCache root should be an object.";
+ return;
+ }
- auto root = Json::requireObject(json, "HttpMetaCache root");
+ auto root = json.object();
// check file version first
auto version_val = Json::ensureString(root, "version");