From 7e16c773751e1e1cf84e03aaf7d9f848590de805 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Tue, 7 May 2013 09:14:23 +0200 Subject: [PATCH] Don't allow config items to inherit from themselves. Fixes #4045 --- lib/config/configitembuilder.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/config/configitembuilder.cpp b/lib/config/configitembuilder.cpp index 111f42b6a..cbe1b6014 100644 --- a/lib/config/configitembuilder.cpp +++ b/lib/config/configitembuilder.cpp @@ -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(); Expression execExpr("", OperatorExecute, m_ExpressionList, m_DebugInfo); -- 2.40.0