0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

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)
This commit is contained in:
Bram Moolenaar
2023-03-02 17:38:33 +00:00
parent c6ff21e876
commit c3f971f289
3 changed files with 27 additions and 0 deletions

View File

@@ -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

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1370,
/**/
1369,
/**/

View File

@@ -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;