summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-11-29 10:36:19 +0000
committerBram Moolenaar <Bram@vim.org>2021-11-29 10:36:19 +0000
commit293eb9ba4669b1500370502397d399681e7098f0 (patch)
tree1918a8ec8f2c8165e501b38692665cef1884a7b4
parent38453528c3372293d70c8e85471a6188749ff331 (diff)
downloadvim-git-293eb9ba4669b1500370502397d399681e7098f0.tar.gz
patch 8.2.3693: Coverity warns for possibly using a NULL pointerv8.2.3693
Problem: Coverity warns for possibly using a NULL pointer. Solution: Check for NULL and give an error.
-rw-r--r--src/errors.h3
-rw-r--r--src/version.c2
-rw-r--r--src/vim9execute.c6
3 files changed, 10 insertions, 1 deletions
diff --git a/src/errors.h b/src/errors.h
index 3c76bb70d..5cc98e786 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -355,7 +355,8 @@ EXTERN char e_cannot_delete_vim9_script_function_str[]
INIT(= N_("E1084: Cannot delete Vim9 script function %s"));
EXTERN char e_not_callable_type_str[]
INIT(= N_("E1085: Not a callable type: %s"));
-// E1086 unused
+EXTERN char e_function_reference_invalid[]
+ INIT(= N_("E1086: Function reference invalid"));
EXTERN char e_cannot_use_index_when_declaring_variable[]
INIT(= N_("E1087: Cannot use an index when declaring a variable"));
// E1088 unused
diff --git a/src/version.c b/src/version.c
index 90021bec3..b7fe97b2b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3693,
+/**/
3692,
/**/
3691,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 7704635e9..de4de16e3 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -3189,6 +3189,12 @@ exec_instructions(ectx_T *ectx)
{
ufunc = find_func(funcref->fr_func_name, FALSE, NULL);
}
+ if (ufunc == NULL)
+ {
+ SOURCING_LNUM = iptr->isn_lnum;
+ emsg(_(e_function_reference_invalid));
+ goto theend;
+ }
if (fill_partial_and_closure(pt, ufunc, ectx) == FAIL)
goto theend;
tv = STACK_TV_BOT(0);