# HG changeset patch # User Christian Brabandt # Date 1458045905 -3600 # Node ID 7d3548ae729defe4975a8afd24c42b7f8f750467 # Parent ed28f4f1d7cfa72a3a5b5523240a4b01303a4b45 commit https://github.com/vim/vim/commit/1abb502635c7f317e05a0cf3ea067101f9d684f5 Author: Bram Moolenaar Date: Tue Mar 15 13:33:55 2016 +0100 patch 7.4.1567 Problem: Crash in assert_fails(). Solution: Check for NULL. (Dominique Pelle) Add a test. diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -9386,7 +9386,8 @@ f_assert_fails(typval_T *argvars, typval char_u buf[NUMBUFLEN]; char *error = (char *)get_tv_string_buf_chk(&argvars[1], buf); - if (strstr((char *)vimvars[VV_ERRMSG].vv_str, error) == NULL) + if (error == NULL + || strstr((char *)vimvars[VV_ERRMSG].vv_str, error) == NULL) { prepare_assert_error(&ga); fill_assert_error(&ga, &argvars[2], NULL, &argvars[1], diff --git a/src/testdir/test_assert.vim b/src/testdir/test_assert.vim --- a/src/testdir/test_assert.vim +++ b/src/testdir/test_assert.vim @@ -62,6 +62,12 @@ func Test_compare_fail() endtry endfunc +func Test_assert_fail_fails() + call assert_fails('xxx', {}) + call assert_true(v:errors[0] =~ "Expected {} but got 'E731:") + call remove(v:errors, 0) +endfunc + func Test_user_is_happy() smile diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -744,6 +744,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1567, +/**/ 1566, /**/ 1565,