summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-01-19 14:31:20 +0100
committerBram Moolenaar <Bram@vim.org>2016-01-19 14:31:20 +0100
commitda5dcd936656f524dd0ae7cb2685245f07f5720f (patch)
tree7d90cdd1743d579bac2bddcfe8c0cfbdafda348c
parent301417041bdb15264a9c8ff20e4fea4dcc12c478 (diff)
patch 7.4.1136v7.4.1136
Problem: Wrong argument to assert_exception() causes a crash. (reported by Coverity) Solution: Check for NULL pointer. Add a test.
-rw-r--r--src/eval.c3
-rw-r--r--src/testdir/test_assert.vim19
-rw-r--r--src/version.c2
3 files changed, 23 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index 0d83f1d5cf..34fdd67d4b 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -9278,7 +9278,8 @@ f_assert_exception(argvars, rettv)
assert_error(&ga);
ga_clear(&ga);
}
- else if (strstr((char *)vimvars[VV_EXCEPTION].vv_str, error) == NULL)
+ else if (error != NULL
+ && strstr((char *)vimvars[VV_EXCEPTION].vv_str, error) == NULL)
{
prepare_assert_error(&ga);
fill_assert_error(&ga, &argvars[1], NULL, &argvars[0],
diff --git a/src/testdir/test_assert.vim b/src/testdir/test_assert.vim
index 25337a575e..70a303ffcd 100644
--- a/src/testdir/test_assert.vim
+++ b/src/testdir/test_assert.vim
@@ -18,6 +18,25 @@ func Test_assert_equal()
call assert_equal([1, 2, 3], l)
endfunc
+func Test_assert_exception()
+ try
+ nocommand
+ catch
+ call assert_exception('E492:')
+ endtry
+
+ try
+ nocommand
+ catch
+ try
+ " illegal argument, get NULL for error
+ call assert_exception([])
+ catch
+ call assert_exception('E730:')
+ endtry
+ endtry
+endfunc
+
func Test_user_is_happy()
smile
sleep 300m
diff --git a/src/version.c b/src/version.c
index 843e7414ca..30e60687ed 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1136,
+/**/
1135,
/**/
1134,