Don't allow config items to inherit from themselves.

Fixes #4045
This commit is contained in:
Gunnar Beutner 2013-05-07 09:14:23 +02:00
parent 9418d1e440
commit 7e16c77375
1 changed files with 5 additions and 0 deletions

View File

@ -110,6 +110,11 @@ ConfigItem::Ptr ConfigItemBuilder::Compile(void)
BOOST_THROW_EXCEPTION(std::invalid_argument(msgbuf.str()));
}
BOOST_FOREACH(const String& parent, m_Parents) {
if (parent == m_Name)
BOOST_THROW_EXCEPTION(std::invalid_argument("Configuration item '" + m_Name + "' of type '" + m_Type + "' must not inherit from itself."));
}
ExpressionList::Ptr exprl = boost::make_shared<ExpressionList>();
Expression execExpr("", OperatorExecute, m_ExpressionList, m_DebugInfo);