patch 7.4.1255
Problem: Crash for channel "eval" command without third argument.
Solution: Check for missing argument.
diff --git a/src/channel.c b/src/channel.c
index 9e15fe4..b9a2a97 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -694,7 +694,7 @@
{
int is_eval = cmd[1] == 'v';
- if (is_eval && arg3->v_type != VAR_NUMBER)
+ if (is_eval && (arg3 == NULL || arg3->v_type != VAR_NUMBER))
{
if (p_verbose > 2)
EMSG("E904: third argument for eval must be a number");
@@ -774,7 +774,7 @@
typval_T *arg3 = NULL;
char_u *cmd = typetv->vval.v_string;
- /* ["cmd", arg] */
+ /* ["cmd", arg] or ["cmd", arg, arg] */
if (list->lv_len == 3)
arg3 = &list->lv_last->li_tv;
channel_exe_cmd(idx, cmd, &argv[1], arg3);