From c15c9cce5e96b3e8ff2f078d8b5dcdb1418e32d4 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Wed, 23 Sep 2015 09:21:45 +0200 Subject: [PATCH] Detect infinite recursion in user scripts fixes #10198 --- lib/base/scriptframe.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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); } -- 2.50.1