changeset 31573:fc9ce07dc8a4 v9.0.1119

patch 9.0.1119: type of arguments not checked when calling a partial Commit: https://github.com/vim/vim/commit/0d89d8ae89c861572496c5ae9683d986b28c957b Author: Bram Moolenaar <Bram@vim.org> Date: Sat Dec 31 14:01:24 2022 +0000 patch 9.0.1119: type of arguments not checked when calling a partial Problem: Type of arguments not checked when calling a partial. Solution: Give an error for a wrong argument type. (closes https://github.com/vim/vim/issues/11753)
author Bram Moolenaar <Bram@vim.org>
date Sat, 31 Dec 2022 15:15:02 +0100
parents d16bf8370f60
children f005bcdf9a62
files src/testdir/test_vim9_func.vim src/version.c src/vim9execute.c
diffstat 3 files changed, 43 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
index 0edf7eab713ca2837cb4438f3784e52757bf6a67..3840d1144f93cc80208496d1b689c34611db0f37
GIT binary patch
literal 102784
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
--- 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 */
 /**/
+    1119,
+/**/
     1118,
 /**/
     1117,
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -377,6 +377,41 @@ get_pt_outer(partial_T *pt)
 }
 
 /*
+ * Check "argcount" arguments on the stack against what "ufunc" expects.
+ * "off" is the offset of arguments on the stack.
+ * Return OK or FAIL.
+ */
+    static int
+check_ufunc_arg_types(ufunc_T *ufunc, int argcount, int off, ectx_T *ectx)
+{
+    if (ufunc->uf_arg_types != NULL || ufunc->uf_va_type != NULL)
+    {
+	typval_T	*argv = STACK_TV_BOT(0) - argcount - off;
+
+	// The function can change at runtime, check that the argument
+	// types are correct.
+	for (int i = 0; i < argcount; ++i)
+	{
+	    type_T *type = NULL;
+
+	    // assume a v:none argument, using the default value, is always OK
+	    if (argv[i].v_type == VAR_SPECIAL
+					 && argv[i].vval.v_number == VVAL_NONE)
+		continue;
+
+	    if (i < ufunc->uf_args.ga_len && ufunc->uf_arg_types != NULL)
+		type = ufunc->uf_arg_types[i];
+	    else if (ufunc->uf_va_type != NULL)
+		type = ufunc->uf_va_type->tt_member;
+	    if (type != NULL && check_typval_arg_type(type,
+					    &argv[i], NULL, i + 1) == FAIL)
+		return FAIL;
+	}
+    }
+    return OK;
+}
+
+/*
  * Call compiled function "cdf_idx" from compiled code.
  * This adds a stack frame and sets the instruction pointer to the start of the
  * called function.
@@ -498,6 +533,10 @@ call_dfunc(
 	return FAIL;
     }
 
+    // Check the argument types.
+    if (check_ufunc_arg_types(ufunc, argcount, vararg_count, ectx) == FAIL)
+	return FAIL;
+
     // Reserve space for:
     // - missing arguments
     // - stack frame
@@ -1345,26 +1384,8 @@ call_by_name(
 
     if (ufunc != NULL)
     {
-	if (ufunc->uf_arg_types != NULL || ufunc->uf_va_type != NULL)
-	{
-	    int i;
-	    typval_T	*argv = STACK_TV_BOT(0) - argcount;
-
-	    // The function can change at runtime, check that the argument
-	    // types are correct.
-	    for (i = 0; i < argcount; ++i)
-	    {
-		type_T *type = NULL;
-
-		if (i < ufunc->uf_args.ga_len && ufunc->uf_arg_types != NULL)
-		    type = ufunc->uf_arg_types[i];
-		else if (ufunc->uf_va_type != NULL)
-		    type = ufunc->uf_va_type->tt_member;
-		if (type != NULL && check_typval_arg_type(type,
-						&argv[i], NULL, i + 1) == FAIL)
-		    return FAIL;
-	    }
-	}
+	if (check_ufunc_arg_types(ufunc, argcount, 0, ectx) == FAIL)
+	    return FAIL;
 
 	return call_ufunc(ufunc, NULL, argcount, ectx, iptr, selfdict);
     }