From: Bram Moolenaar Date: Thu, 2 Mar 2023 17:38:33 +0000 (+0000) Subject: patch 9.0.1370: crash when using a NULL object X-Git-Tag: v9.0.1370 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c3f971f28989fde7d94b45957496fecd6e6f2177;p=vim 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 #12083) --- diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index 3bb289b47..c228f2642 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -235,6 +235,24 @@ def Test_object_not_set() END v9.CheckScriptFailure(lines, 'E1360:') + 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 diff --git a/src/version.c b/src/version.c index 6aa63ef67..857c1394c 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1370, /**/ 1369, /**/ diff --git a/src/vim9execute.c b/src/vim9execute.c index bc4a1fcc0..f8ce10170 100644 --- 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;