changeset 31543:0c0ecf489f05 v9.0.1104

patch 9.0.1104: invalid memory access when checking function argument types Commit: https://github.com/vim/vim/commit/56310d38d8e866085108c7b77b756f4373d5122a Author: Bram Moolenaar <Bram@vim.org> Date: Tue Dec 27 17:25:05 2022 +0000 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 https://github.com/vim/vim/issues/11755)
author Bram Moolenaar <Bram@vim.org>
date Tue, 27 Dec 2022 18:30:06 +0100
parents ed8f9e6c10f2
children 922e7109afcf
files src/testdir/test_vim9_func.vim src/version.c src/vim9type.c
diffstat 3 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
index a5e3e902548f56142b19e5721209918155ff3424..0edf7eab713ca2837cb4438f3784e52757bf6a67
GIT binary patch
literal 102171
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
OF`hl0h1o~ALH&R5UUYB(
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1104,
+/**/
     1103,
 /**/
     1102,
--- a/src/vim9type.c
+++ b/src/vim9type.c
@@ -848,7 +848,7 @@ check_type_maybe(
 	    {
 		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,