diff options
author | Sam Freed <safreed@microsoft.com> | 2021-03-15 21:44:43 (GMT) |
---|---|---|
committer | Sam Freed <safreed@microsoft.com> | 2021-03-15 21:44:43 (GMT) |
commit | 83eeeff7dc0cf5c298d8696096926c57cd6cff5e (patch) | |
tree | dc298cf5527e95e71e5dd9f44f34fecea9e3de52 /Source/cmCMakePresetsFile.cxx | |
parent | dfdea7d9e3900dfc778b4c5243c0aa13379cb56d (diff) | |
download | CMake-83eeeff7dc0cf5c298d8696096926c57cd6cff5e.zip CMake-83eeeff7dc0cf5c298d8696096926c57cd6cff5e.tar.gz CMake-83eeeff7dc0cf5c298d8696096926c57cd6cff5e.tar.bz2 |
Fail at read-time if configurePreset field invalid
Diffstat (limited to 'Source/cmCMakePresetsFile.cxx')
-rw-r--r-- | Source/cmCMakePresetsFile.cxx | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/Source/cmCMakePresetsFile.cxx b/Source/cmCMakePresetsFile.cxx index c8d69b8..dda3661 100644 --- a/Source/cmCMakePresetsFile.cxx +++ b/Source/cmCMakePresetsFile.cxx @@ -1431,8 +1431,11 @@ cmCMakePresetsFile::ReadProjectPresetsInternal(bool allowNoFiles) if (!it.second.Unexpanded.Hidden) { const auto configurePreset = this->ConfigurePresets.find(it.second.Unexpanded.ConfigurePreset); - if (it.second.Unexpanded.InheritConfigureEnvironment.value_or(true) && - configurePreset != this->ConfigurePresets.end()) { + if (configurePreset == this->ConfigurePresets.end()) { + return ReadFileResult::INVALID_CONFIGURE_PRESET; + } + + if (it.second.Unexpanded.InheritConfigureEnvironment.value_or(true)) { it.second.Unexpanded.Environment.insert( configurePreset->second.Unexpanded.Environment.begin(), configurePreset->second.Unexpanded.Environment.end()); @@ -1448,8 +1451,11 @@ cmCMakePresetsFile::ReadProjectPresetsInternal(bool allowNoFiles) if (!it.second.Unexpanded.Hidden) { const auto configurePreset = this->ConfigurePresets.find(it.second.Unexpanded.ConfigurePreset); - if (it.second.Unexpanded.InheritConfigureEnvironment.value_or(true) && - configurePreset != this->ConfigurePresets.end()) { + if (configurePreset == this->ConfigurePresets.end()) { + return ReadFileResult::INVALID_CONFIGURE_PRESET; + } + + if (it.second.Unexpanded.InheritConfigureEnvironment.value_or(true)) { it.second.Unexpanded.Environment.insert( configurePreset->second.Unexpanded.Environment.begin(), configurePreset->second.Unexpanded.Environment.end()); @@ -1502,6 +1508,8 @@ const char* cmCMakePresetsFile::ResultToString(ReadFileResult result) case ReadFileResult::BUILD_TEST_PRESETS_UNSUPPORTED: return "File version must be 2 or higher for build and test preset " "support."; + case ReadFileResult::INVALID_CONFIGURE_PRESET: + return "Invalid \"configurePreset\" field"; } return "Unknown error"; |