From 1abb502635c7f317e05a0cf3ea067101f9d684f5 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 15 Mar 2016 13:33:55 +0100 Subject: [PATCH] patch 7.4.1567 Problem: Crash in assert_fails(). Solution: Check for NULL. (Dominique Pelle) Add a test. --- src/eval.c | 3 ++- src/testdir/test_assert.vim | 6 ++++++ src/version.c | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) 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 @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1567, /**/ 1566, /**/ -- 2.50.1