diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2018-12-14 22:24:52 (GMT) |
---|---|---|
committer | Kyle Edwards <kyle.edwards@kitware.com> | 2019-01-23 14:52:29 (GMT) |
commit | a6982cff0d3910723ad4fd40b9c63cf77c872d30 (patch) | |
tree | b1e69a204006b7b1521c2994ff52b6c3e79b9715 /Source/cmGlobalGenerator.cxx | |
parent | a7f5cd45e135dd51d67176fc40e2d769ac5f7db8 (diff) | |
download | CMake-a6982cff0d3910723ad4fd40b9c63cf77c872d30.zip CMake-a6982cff0d3910723ad4fd40b9c63cf77c872d30.tar.gz CMake-a6982cff0d3910723ad4fd40b9c63cf77c872d30.tar.bz2 |
cmMakefile: Impose maximum recursion limit
In order to keep infinitely-recursive scripts from causing a stack
overflow in the CMake executable, CMake now imposes a maximum
recursion limit before issuing an error message. The limit can be
adjusted at runtime with CMAKE_MAXIMUM_RECURSION_DEPTH.
Fixes: #18694
Diffstat (limited to 'Source/cmGlobalGenerator.cxx')
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index b2b0e38..acd666f 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -98,6 +98,8 @@ cmGlobalGenerator::cmGlobalGenerator(cmake* cm) this->ConfigureDoneCMP0026AndCMP0024 = false; this->FirstTimeProgress = 0.0f; + this->RecursionDepth = 0; + cm->GetState()->SetIsGeneratorMultiConfig(false); cm->GetState()->SetMinGWMake(false); cm->GetState()->SetMSYSShell(false); @@ -1166,6 +1168,7 @@ void cmGlobalGenerator::Configure() this->CMakeInstance->GetHomeOutputDirectory()); cmMakefile* dirMf = new cmMakefile(this, snapshot); + dirMf->SetRecursionDepth(this->RecursionDepth); this->Makefiles.push_back(dirMf); this->IndexMakefile(dirMf); |