]> granicus.if.org Git - vim/commitdiff
patch 7.4.1136 v7.4.1136
authorBram Moolenaar <Bram@vim.org>
Tue, 19 Jan 2016 13:31:20 +0000 (14:31 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 19 Jan 2016 13:31:20 +0000 (14:31 +0100)
Problem:    Wrong argument to assert_exception() causes a crash. (reported by
            Coverity)
Solution:   Check for NULL pointer.  Add a test.

src/eval.c
src/testdir/test_assert.vim
src/version.c

index 0d83f1d5cf8342dbcded621963a24751a7099dfe..34fdd67d4bfb8dd9a110d683c73f6a01d4134fa8 100644 (file)
@@ -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],
index 25337a575e03abc5bdb9c99e826281d6b300dae5..70a303ffcdaaaf8ff99be076dfbef4bde7e28de5 100644 (file)
@@ -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
index 843e7414ca1d838f11a819f9dff66306548ed49b..30e60687edc8f501965a8ac62ff0f738d810b09c 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1136,
 /**/
     1135,
 /**/