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
index fd028cc..7776cc6 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -9386,7 +9386,8 @@
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 df2636d..2ac828b 100644
--- a/src/testdir/test_assert.vim
+++ b/src/testdir/test_assert.vim
@@ -62,6 +62,12 @@
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 e4004f8..eecbfe1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -744,6 +744,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1567,
+/**/
1566,
/**/
1565,