Mercurial > vim
changeset 32078:615964c77be3 v9.0.1370
patch 9.0.1370: crash when using a NULL object
Commit: https://github.com/vim/vim/commit/c3f971f28989fde7d94b45957496fecd6e6f2177
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Mar 2 17:38:33 2023 +0000
patch 9.0.1370: crash when using a NULL object
Problem: Crash when using a NULL object. (Ernie Rael)
Solution: Check for NULL and give an error message. (closes https://github.com/vim/vim/issues/12083)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 02 Mar 2023 18:45:08 +0100 |
parents | 0e2d11229f70 |
children | 6ddbdb9ba573 |
files | src/testdir/test_vim9_class.vim src/version.c src/vim9execute.c |
diffstat | 3 files changed, 27 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -238,6 +238,24 @@ def Test_object_not_set() lines =<< trim END vim9script + class Class + this.id: string + def Method1() + echo 'Method1' .. this.id + enddef + endclass + + var obj: Class + def Func() + obj.Method1() + enddef + Func() + END + v9.CheckScriptFailure(lines, 'E1360:') + + lines =<< trim END + vim9script + class Background this.background = 'dark' endclass
--- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1370, +/**/ 1369, /**/ 1368,
--- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -5321,6 +5321,13 @@ exec_instructions(ectx_T *ectx) } object_T *obj = tv->vval.v_object; + if (obj == NULL) + { + SOURCING_LNUM = iptr->isn_lnum; + emsg(_(e_using_null_object)); + goto on_error; + } + int idx; if (iptr->isn_type == ISN_GET_OBJ_MEMBER) idx = iptr->isn_arg.number;