Mercurial > vim
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