Detect infinite recursion in the zone hierarchy graph

fixes #10937
This commit is contained in:
Gunnar Beutner 2016-03-23 09:01:10 +01:00
parent 6ba0c5fe01
commit b621b00e3a
1 changed files with 5 additions and 0 deletions

View File

@ -32,11 +32,16 @@ void Zone::OnAllConfigLoaded(void)
m_Parent = Zone::GetByName(GetParentRaw());
Zone::Ptr zone = m_Parent;
int levels = 0;
while (zone) {
m_AllParents.push_back(zone);
zone = Zone::GetByName(zone->GetParentRaw());
levels++;
if (levels > 32)
BOOST_THROW_EXCEPTION(ScriptError("Infinite recursion detected while resolving zone graph. Check your zone hierarchy.", GetDebugInfo()));
}
}