0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.1.2412: crash when evaluating expression with error

Problem:    Crash when evaluating expression with error. (Dhiraj Mishra)
Solution:   Check parsing failed. (closes #5329)
This commit is contained in:
Bram Moolenaar
2019-12-08 18:41:34 +01:00
parent 1b03a193b3
commit 0ff822d2eb
3 changed files with 8 additions and 1 deletions

View File

@@ -2902,7 +2902,7 @@ eval_lambda(
rettv->v_type = VAR_UNKNOWN;
ret = get_lambda_tv(arg, rettv, evaluate);
if (ret == NOTDONE)
if (ret != OK)
return FAIL;
else if (**arg != '(')
{

View File

@@ -302,3 +302,8 @@ func Test_lambda_with_index()
let Extract = {-> function(List, ['foobar'])()[0]}
call assert_equal('foobar', Extract())
endfunc
func Test_lambda_error()
" This was causing a crash
call assert_fails('ec{@{->{d->()()', 'E15')
endfunc

View File

@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2412,
/**/
2411,
/**/