summaryrefslogtreecommitdiffstats
path: root/src/evalfunc.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-08-21 14:36:15 +0200
committerBram Moolenaar <Bram@vim.org>2016-08-21 14:36:15 +0200
commit843b884461de1c79a1d2748549776fb13fc94360 (patch)
tree6c51e94545370536734e3033f67b19e5c23cbb49 /src/evalfunc.c
parente07e797db0c5ef1aafc650d8bb0d39fb052cf1e1 (diff)
patch 7.4.2233v7.4.2233
Problem: Crash when using funcref() with invalid name. (Dominique Pelle) Solution: Check for NULL translated name.
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r--src/evalfunc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 16e2365def..53d3d752ec 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -3587,8 +3587,7 @@ common_function(typval_T *argvars, typval_T *rettv, int is_funcref)
use_string = TRUE;
}
- if (((use_string && vim_strchr(s, AUTOLOAD_CHAR) == NULL)
- || is_funcref))
+ if ((use_string && vim_strchr(s, AUTOLOAD_CHAR) == NULL) || is_funcref)
{
name = s;
trans_name = trans_function_name(&name, FALSE,
@@ -3597,7 +3596,8 @@ common_function(typval_T *argvars, typval_T *rettv, int is_funcref)
s = NULL;
}
- if (s == NULL || *s == NUL || (use_string && VIM_ISDIGIT(*s)))
+ if (s == NULL || *s == NUL || (use_string && VIM_ISDIGIT(*s))
+ || (is_funcref && trans_name == NULL))
EMSG2(_(e_invarg2), s);
/* Don't check an autoload name for existence here. */
else if (trans_name != NULL && (is_funcref