aboutsummaryrefslogtreecommitdiff
path: root/launcher/net
diff options
context:
space:
mode:
authorTrial97 <alexandru.tripon97@gmail.com>2023-08-27 20:41:56 +0300
committerTrial97 <alexandru.tripon97@gmail.com>2023-08-27 20:41:56 +0300
commit0680d2dceb27f18b1c888bf16079dfd00d07b3ca (patch)
tree6874b9733973fc6488a8ebe8bd394f73593b41a7 /launcher/net
parentab6301d5a1a2a77d12d73f4ff7088551d6b8aa2e (diff)
parent9110fbf2829a48c36fe37cabfb438e165956bbcf (diff)
downloadPrismLauncher-0680d2dceb27f18b1c888bf16079dfd00d07b3ca.tar.gz
PrismLauncher-0680d2dceb27f18b1c888bf16079dfd00d07b3ca.tar.bz2
PrismLauncher-0680d2dceb27f18b1c888bf16079dfd00d07b3ca.zip
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
Diffstat (limited to 'launcher/net')
-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");