diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2015-04-03 10:13:22 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2015-04-11 08:46:59 -0300 |
commit | 17db7f1e14d4f1f2a70832ab10232ef0cdfb5a6b (patch) | |
tree | d4f490016f4b5694a0a7fa3faea78fcbd2c21219 | |
parent | 5bd85fd95442b2eab8d00a291380c52f48097e61 (diff) | |
download | rneovim-17db7f1e14d4f1f2a70832ab10232ef0cdfb5a6b.tar.gz rneovim-17db7f1e14d4f1f2a70832ab10232ef0cdfb5a6b.tar.bz2 rneovim-17db7f1e14d4f1f2a70832ab10232ef0cdfb5a6b.zip |
eval: Fix segfault caused by passing invalid callback to jobstart
-rw-r--r-- | src/nvim/eval.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 90ab471818..6c8dd3da32 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -5963,11 +5963,12 @@ static bool get_dict_callback(dict_T *d, char *key, ufunc_T **result) uint8_t *name = di->di_tv.vval.v_string; uint8_t *n = name; - ufunc_T *rv; + ufunc_T *rv = NULL; if (*n > '9' || *n < '0') { - n = trans_function_name(&n, false, TFN_INT|TFN_QUIET, NULL); - rv = find_func(n); - free(n); + if ((n = trans_function_name(&n, false, TFN_INT|TFN_QUIET, NULL))) { + rv = find_func(n); + free(n); + } } else { // dict function, name is already translated rv = find_func(n); |