diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-07-24 13:18:48 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-07-24 13:18:48 +0200 |
commit | 5a234eb18e6e43408755bb24e813330306c11629 (patch) | |
tree | 1dfb2d472fa5cbad6c16d9eace2b8eeaa5107870 /src | |
parent | 0ad871dc4dfe1026e14931a55c225616b63f4c5b (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.
Diffstat (limited to 'src')
-rw-r--r-- | src/testdir/test_vim9_builtin.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 1 |
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; } |