forked from aniani/vim
patch 9.1.0620: Vim9: segfauls with null objects
Problem: Vim9: segfauls with null objects
(after v9.1.0219)
Solution: Check object pointer being NULL
(Ernie Rael)
fixes: #15338
closes: #15349
Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
8754efe437
commit
be82825687
26
src/typval.c
26
src/typval.c
@@ -267,11 +267,16 @@ tv_get_bool_or_number_chk(
|
||||
break;
|
||||
case VAR_OBJECT:
|
||||
{
|
||||
class_T *cl = varp->vval.v_object->obj_class;
|
||||
if (cl != NULL && IS_ENUM(cl))
|
||||
semsg(_(e_using_enum_str_as_number), cl->class_name);
|
||||
if (varp->vval.v_object == NULL)
|
||||
emsg(_(e_using_object_as_string));
|
||||
else
|
||||
emsg(_(e_using_object_as_number));
|
||||
{
|
||||
class_T *cl = varp->vval.v_object->obj_class;
|
||||
if (cl != NULL && IS_ENUM(cl))
|
||||
semsg(_(e_using_enum_str_as_number), cl->class_name);
|
||||
else
|
||||
emsg(_(e_using_object_as_number));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case VAR_VOID:
|
||||
@@ -1146,11 +1151,16 @@ tv_get_string_buf_chk_strict(typval_T *varp, char_u *buf, int strict)
|
||||
break;
|
||||
case VAR_OBJECT:
|
||||
{
|
||||
class_T *cl = varp->vval.v_object->obj_class;
|
||||
if (cl != NULL && IS_ENUM(cl))
|
||||
semsg(_(e_using_enum_str_as_string), cl->class_name);
|
||||
else
|
||||
if (varp->vval.v_object == NULL)
|
||||
emsg(_(e_using_object_as_string));
|
||||
else
|
||||
{
|
||||
class_T *cl = varp->vval.v_object->obj_class;
|
||||
if (cl != NULL && IS_ENUM(cl))
|
||||
semsg(_(e_using_enum_str_as_string), cl->class_name);
|
||||
else
|
||||
emsg(_(e_using_object_as_string));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case VAR_JOB:
|
||||
|
||||
Reference in New Issue
Block a user