diff options
author | Andrew Chin <achin@eminence32.net> | 2014-05-30 15:42:32 -0400 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2014-06-10 02:39:39 -0400 |
commit | 785b16d9051b3f76669d14b103cb5a897db9f65d (patch) | |
tree | b313fbe0b00b0c90bf0ca0350d39edfe5f4f1090 /src | |
parent | d2dfa8523eb6c1fc9c4220edc6344951d2b1e86a (diff) | |
download | rneovim-785b16d9051b3f76669d14b103cb5a897db9f65d.tar.gz rneovim-785b16d9051b3f76669d14b103cb5a897db9f65d.tar.bz2 rneovim-785b16d9051b3f76669d14b103cb5a897db9f65d.zip |
Prevent null-pointer deference during vim_eval #785
If the eval_expr call in vim_eval returns NULL, a null-pointer deference
would happen a few frames down, in vim_to_object_rec
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/api/vim.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 653e6b34c7..b99311a61a 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -61,6 +61,10 @@ Object vim_eval(String str, Error *err) try_start(); typval_T *expr_result = eval_expr((char_u *) str.data, NULL); + if (!expr_result) { + set_api_error("Failed to eval expression", err); + } + if (!try_end(err)) { // No errors, convert the result rv = vim_to_object(expr_result); |