patch 9.1.0688: Vim9: dereferences NULL pointer in check_type_is_value() Commit: https://github.com/vim/vim/commit/25618fc9eacc6a210507d7749b237ec3a695be85 Author: Christian Brabandt <c...@256bit.org> Date: Thu Aug 22 21:25:18 2024 +0200
patch 9.1.0688: Vim9: dereferences NULL pointer in check_type_is_value() Problem: Vim9: dereferences NULL pointer in check_type_is_value() (Suyue Guo) Solution: Verify that the pointer is not Null fixes: #15540 closes: #15545 Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim index a9e10e797..51ae7e685 100644 --- a/src/testdir/test_vim9_cmd.vim +++ b/src/testdir/test_vim9_cmd.vim @@ -2036,6 +2036,14 @@ def Test_no_space_after_command() v9.CheckDefExecAndScriptFailure(lines, 'E486:', 1) enddef +def Test_lambda_crash() + # This used to crash Vim + var lines =<< trim END + vim9 () => super => { + END + v9.CheckScriptFailureList(lines, ["E1356:", "E1405:"]) +enddef + " Test for the 'previewpopup' option def Test_previewpopup() set previewpopup=height:10,width:60 @@ -2044,6 +2052,7 @@ def Test_previewpopup() assert_notequal(id, 0) assert_match('Xppfile', popup_getoptions(id).title) popup_clear() + bw Xppfile set previewpopup& enddef diff --git a/src/version.c b/src/version.c index 72cce6580..e77ef0f4c 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 688, /**/ 687, /**/ diff --git a/src/vim9type.c b/src/vim9type.c index a1571218f..1f044d3d4 100644 --- a/src/vim9type.c +++ b/src/vim9type.c @@ -2138,12 +2138,13 @@ check_type_is_value(type_T *type) switch (type->tt_type) { case VAR_CLASS: - if (IS_ENUM(type->tt_class)) + if (type->tt_class != NULL && IS_ENUM(type->tt_class)) semsg(_(e_using_enum_as_value_str), type->tt_class->class_name); else semsg(_(e_using_class_as_value_str), - type->tt_class->class_name); + type->tt_class == NULL ? (char_u *)"" + : type->tt_class->class_name); return FAIL; case VAR_TYPEALIAS: -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/E1shDVW-001Lii-IS%40256bit.org.