aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorMichael Ennen <mike.ennen@gmail.com>2016-12-19 17:21:50 -0700
committerMichael Ennen <mike.ennen@gmail.com>2017-02-14 17:38:19 -0700
commiteffe760b134589f8024d6a5f1cb2c7b979054937 (patch)
treea6e7fd16061a625176d9708ca6f79ec7227f1629 /src/nvim/eval.c
parent8cae66b5e04467322b3dcd20d0a998d9f327efb9 (diff)
downloadrneovim-effe760b134589f8024d6a5f1cb2c7b979054937.tar.gz
rneovim-effe760b134589f8024d6a5f1cb2c7b979054937.tar.bz2
rneovim-effe760b134589f8024d6a5f1cb2c7b979054937.zip
vim-patch:7.4.2233
Problem: Crash when using funcref() with invalid name. (Dominique Pelle) Solution: Check for NULL translated name. https://github.com/vim/vim/commit/843b884461de1c79a1d2748549776fb13fc94360
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 068a1b8ed4..5d10002846 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -10054,8 +10054,7 @@ static void common_function(typval_T *argvars, typval_T *rettv,
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,
TFN_INT | TFN_QUIET | TFN_NO_AUTOLOAD
@@ -10064,7 +10063,8 @@ static void common_function(typval_T *argvars, typval_T *rettv,
s = NULL;
}
}
- if (s == NULL || *s == NUL || (use_string && ascii_isdigit(*s))) {
+ if (s == NULL || *s == NUL || (use_string && ascii_isdigit(*s))
+ || (is_funcref && trans_name == NULL)) {
EMSG2(_(e_invarg2), s);
} else if (trans_name != NULL
&& (is_funcref ? find_func(trans_name) == NULL