diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-03-15 13:33:55 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-03-15 13:33:55 +0100 |
commit | 1abb502635c7f317e05a0cf3ea067101f9d684f5 (patch) | |
tree | 5795aacec573dc3d1b9f8f54834d325b782189fd | |
parent | 4f118be2bb987cdf313da879d2a93ae125e99202 (diff) | |
download | vim-git-1abb502635c7f317e05a0cf3ea067101f9d684f5.tar.gz |
patch 7.4.1567v7.4.1567
Problem: Crash in assert_fails().
Solution: Check for NULL. (Dominique Pelle) Add a test.
-rw-r--r-- | src/eval.c | 3 | ||||
-rw-r--r-- | src/testdir/test_assert.vim | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c index fd028ccce..7776cc6c3 100644 --- a/src/eval.c +++ b/src/eval.c @@ -9386,7 +9386,8 @@ f_assert_fails(typval_T *argvars, typval_T *rettv UNUSED) 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 index df2636d7b..2ac828b28 100644 --- 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 index e4004f81c..eecbfe1ed 100644 --- 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, |