patch 9.0.1104: invalid memory access when checking function argument types
Problem: Invalid memory access when checking function argument types.
Solution: Do not check beyond the number of arguments. (closes #11755)
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index a5e3e90..0edf7ea 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
Binary files differ
diff --git a/src/version.c b/src/version.c
index b33f6d5..8dbf11f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1104,
+/**/
1103,
/**/
1102,
diff --git a/src/vim9type.c b/src/vim9type.c
index 0709ce0..393c69d 100644
--- a/src/vim9type.c
+++ b/src/vim9type.c
@@ -848,7 +848,7 @@
{
int i;
- for (i = 0; i < expected->tt_argcount; ++i)
+ for (i = 0; i < expected->tt_argcount && i < actual->tt_argcount; ++i)
// Allow for using "any" argument type, lambda's have them.
if (actual->tt_args[i] != &t_any && check_type(
expected->tt_args[i], actual->tt_args[i], FALSE,