From ff071f8b75cd55ac8688817088fb10989eee4c97 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 29 Jan 2022 22:32:11 +0100 Subject: [PATCH] Core/BaseConfigLoader: Disallow loading the MAIN_MEMORY_CARD_SIZE from the global config INI. --- Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp b/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp index 9aa45f8714bc..7b9d1c27820d 100644 --- a/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp +++ b/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp @@ -19,6 +19,7 @@ #include "Common/IniFile.h" #include "Common/Logging/Log.h" +#include "Core/Config/MainSettings.h" #include "Core/Config/SYSCONFSettings.h" #include "Core/ConfigLoaders/IsSettingSaveable.h" #include "Core/ConfigManager.h" @@ -103,6 +104,11 @@ class BaseConfigLayerLoader final : public Config::ConfigLayerLoader BaseConfigLayerLoader() : ConfigLayerLoader(Config::LayerType::Base) {} void Load(Config::Layer* layer) override { + // List of settings that under no circumstances should be loaded from the global config INI. + static const auto s_setting_disallowed = { + &Config::MAIN_MEMORY_CARD_SIZE.GetLocation(), + }; + LoadFromSYSCONF(layer); for (const auto& system : system_to_ini) { @@ -118,6 +124,12 @@ class BaseConfigLayerLoader final : public Config::ConfigLayerLoader for (const auto& value : section_map) { const Config::Location location{system.first, section_name, value.first}; + const bool load_disallowed = + std::any_of(begin(s_setting_disallowed), end(s_setting_disallowed), + [&location](const Config::Location* l) { return *l == location; }); + if (load_disallowed) + continue; + layer->Set(location, value.second); } }