changeset 7675:eb9cc96138a3 v7.4.1136

commit https://github.com/vim/vim/commit/da5dcd936656f524dd0ae7cb2685245f07f5720f Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jan 19 14:31:20 2016 +0100 patch 7.4.1136 Problem: Wrong argument to assert_exception() causes a crash. (reported by Coverity) Solution: Check for NULL pointer. Add a test.
author Christian Brabandt <cb@256bit.org>
date Tue, 19 Jan 2016 14:45:05 +0100
parents c82fa18b578b
children b0e4d35c8997
files src/eval.c src/testdir/test_assert.vim src/version.c
diffstat 3 files changed, 23 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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],
--- 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
--- 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,