patch 8.1.2282: crash when passing many arguments through a partial
Problem: Crash when passing many arguments through a partial. (Andy
Massimino)
Solution: Check the number of arguments. (closes #5186)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 62a7f06..e5be361 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -2527,6 +2527,12 @@
list = argvars[arg_idx].vval.v_list;
if (list == NULL || list->lv_len == 0)
arg_idx = 0;
+ else if (list->lv_len > MAX_FUNC_ARGS)
+ {
+ emsg_funcname((char *)e_toomanyarg, name);
+ vim_free(name);
+ goto theend;
+ }
}
}
if (dict_idx > 0 || arg_idx > 0 || arg_pt != NULL || is_funcref)