diff --git a/lib/base/scriptframe.cpp b/lib/base/scriptframe.cpp index 634167e68..88f5706f1 100644 --- a/lib/base/scriptframe.cpp +++ b/lib/base/scriptframe.cpp @@ -19,6 +19,7 @@ #include "base/scriptframe.hpp" #include "base/scriptglobal.hpp" +#include "base/exception.hpp" using namespace icinga; @@ -71,5 +72,8 @@ void ScriptFrame::PushFrame(ScriptFrame *frame) m_ScriptFrames.reset(frames); } + if (frames->size() > 500) + BOOST_THROW_EXCEPTION(ScriptError("Recursion level too deep.")); + frames->push(frame); }