summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-07-24 13:18:48 +0200
committerBram Moolenaar <Bram@vim.org>2021-07-24 13:18:48 +0200
commit5a234eb18e6e43408755bb24e813330306c11629 (patch)
tree1dfb2d472fa5cbad6c16d9eace2b8eeaa5107870
parent0ad871dc4dfe1026e14931a55c225616b63f4c5b (diff)
patch 8.2.3207: Vim9: crash when compiling string failsv8.2.3207
Problem: Vim9: crash when compiling string fails. (Yegappan Lakshmanan) Solution: Adjust the type stack length.
-rw-r--r--src/testdir/test_vim9_builtin.vim7
-rw-r--r--src/version.c2
-rw-r--r--src/vim9compile.c1
3 files changed, 9 insertions, 1 deletions
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index 0d765cc256..6b64823f5f 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -2566,8 +2566,13 @@ def Test_searchpair()
END
CheckScriptSuccess(lines)
assert_equal('yes', g:caught)
-
unlet g:caught
+
+ lines =<< trim END
+ echo searchpair("a", "b", "c", "d", "1", "f")
+ END
+ CheckDefAndScriptFailure2(lines, 'E1001:', 'E475:')
+
bwipe!
enddef
diff --git a/src/version.c b/src/version.c
index 7375563913..387a6e66ca 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3207,
+/**/
3206,
/**/
3205,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index fada1346b7..06098d84c5 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -3263,6 +3263,7 @@ compile_string(isn_T *isn, cctx_T *cctx)
semsg(_(e_trailing_arg), s);
clear_instr_ga(&cctx->ctx_instr);
cctx->ctx_instr = save_ga;
+ ++cctx->ctx_type_stack.ga_len;
return FAIL;
}