From 8441e2252a840bd65477d2f549b0ca37f024754f Mon Sep 17 00:00:00 2001 From: Mr-Wiseguy Date: Sat, 3 Jan 2026 16:26:03 -0500 Subject: [PATCH] Add type checks when parsing config --- librecomp/src/config.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/librecomp/src/config.cpp b/librecomp/src/config.cpp index bbb6794..6bc03fd 100644 --- a/librecomp/src/config.cpp +++ b/librecomp/src/config.cpp @@ -474,7 +474,7 @@ ConfigValueVariant Config::parse_config_option_json_value(const nlohmann::json& return {}; } case ConfigOptionType::Enum: { - if (is_null) { + if (is_null || !json_value.is_string()) { return std::get(option.variant).default_value; } std::string enum_string_value = json_value.get(); @@ -487,19 +487,18 @@ ConfigValueVariant Config::parse_config_option_json_value(const nlohmann::json& } } case ConfigOptionType::Number: - if (is_null) { + if (is_null || !json_value.is_number()) { return std::get(option.variant).default_value; } return json_value.get(); case ConfigOptionType::String: - if (is_null) { + if (is_null || !json_value.is_string()) { return std::get(option.variant).default_value; } return json_value.get(); case ConfigOptionType::Bool: - if (is_null) { + if (is_null || !json_value.is_boolean()) { return std::get(option.variant).default_value; - break; } if (json_value.is_string()) { std::string str_val = json_value.get();