From 4b1884944dcaf337e1e3aefa8979444529bb6987 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 29 Jun 2024 18:49:23 +0200 Subject: [PATCH] fix: Exception when opening a null provider --- plugins/builtin/source/content/recent.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/plugins/builtin/source/content/recent.cpp b/plugins/builtin/source/content/recent.cpp index de4e4062b..be8a337cb 100644 --- a/plugins/builtin/source/content/recent.cpp +++ b/plugins/builtin/source/content/recent.cpp @@ -173,10 +173,22 @@ namespace hex::plugin::builtin::recent { }); std::unordered_set uniqueProviders; - for (u32 i = 0; i < recentFilePaths.size() && uniqueProviders.size() < MaxRecentEntries; i++) { - auto &path = recentFilePaths[i]; + for (const auto &path : recentFilePaths) { + if (uniqueProviders.size() >= MaxRecentEntries) + break; + try { - auto jsonData = nlohmann::json::parse(wolv::io::File(path, wolv::io::File::Mode::Read).readString()); + wolv::io::File recentFile(path, wolv::io::File::Mode::Read); + if (!recentFile.isValid()) { + continue; + } + + auto content = recentFile.readString(); + if (content.empty()) { + continue; + } + + auto jsonData = nlohmann::json::parse(content); uniqueProviders.insert(RecentEntry { .displayName = jsonData.at("displayName"), .type = jsonData.at("type"),