diff options
Diffstat (limited to 'src/core/commands.c')
-rw-r--r-- | src/core/commands.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/commands.c b/src/core/commands.c index 17b825b5..d9dc67af 100644 --- a/src/core/commands.c +++ b/src/core/commands.c @@ -945,12 +945,18 @@ static void event_command(const char *line, SERVER_REC *server, void *item) parse_command(line, expand_aliases, server, item); } +static int eval_recursion_depth=0; /* SYNTAX: EVAL <command(s)> */ static void cmd_eval(const char *data, SERVER_REC *server, void *item) { g_return_if_fail(data != NULL); + if (eval_recursion_depth > 100) + cmd_return_error(CMDERR_EVAL_MAX_RECURSE); + + eval_recursion_depth++; eval_special_string(data, "", server, item); + eval_recursion_depth--; } /* SYNTAX: CD <directory> */ |