aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Chin <achin@eminence32.net>2014-05-30 15:42:32 -0400
committerJustin M. Keyes <justinkz@gmail.com>2014-06-10 02:39:39 -0400
commit785b16d9051b3f76669d14b103cb5a897db9f65d (patch)
treeb313fbe0b00b0c90bf0ca0350d39edfe5f4f1090 /src
parentd2dfa8523eb6c1fc9c4220edc6344951d2b1e86a (diff)
downloadrneovim-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.c4
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);