From 2fb7b42be8aa8e4c5d54797c7f9565d2145402f2 Mon Sep 17 00:00:00 2001 From: BrentVL-1952840 <70229620+Brentdevent@users.noreply.github.com> Date: Thu, 13 Apr 2023 13:40:19 +0200 Subject: [PATCH] Catch parse errors --- src/client/component/workshop.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/client/component/workshop.cpp b/src/client/component/workshop.cpp index 214ef824..f633c691 100644 --- a/src/client/component/workshop.cpp +++ b/src/client/component/workshop.cpp @@ -88,12 +88,18 @@ namespace workshop if (json_str.empty()) { - printf("[ Workshop ] Workshop.json has not been found in mod folder: %s", mod_id.data()); + printf("[ Workshop ] workshop.json has not been found in mod folder: %s\n", mod_id.data()); return mod_id; } rapidjson::Document doc; - doc.Parse(json_str); + const rapidjson::ParseResult parse_result = doc.Parse(json_str); + + if (parse_result.IsError() || !doc.IsObject()) + { + printf("[ Workshop ] Unable to parse workshop.json\n"); + return mod_id; + } if (doc.HasMember("Title")) { @@ -108,7 +114,7 @@ namespace workshop } else { - printf("[ Workshop ] Workshop.json has no \"Title\" member."); + printf("[ Workshop ] workshop.json has no \"Title\" member.\n"); return mod_id; } }