vim-patch:9.0.2030: no max callback recursion limit (#25655)

Problem:  no max callback recursion limit
Solution: bail out, if max call recursion for callback functions
          has been reached.

This checks the 'maxfuncdepth' setting and throws E169 when a callback
function recursively calls itself.

closes: vim/vim#13337
closes: vim/vim#13339

47510f3d65

Co-authored-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq
2023-10-15 17:02:17 +08:00
committed by GitHub
parent aa62579a68
commit e5a424d78e
4 changed files with 8 additions and 0 deletions

View File

@@ -6064,6 +6064,11 @@ bool callback_call(Callback *const callback, const int argcount_in, typval_T *co
typval_T *const rettv)
FUNC_ATTR_NONNULL_ALL
{
if (callback_depth > p_mfd) {
emsg(_(e_command_too_recursive));
return false;
}
partial_T *partial;
char *name;
Array args = ARRAY_DICT_INIT;