diff options
author | ZyX <kp-pav@yandex.ru> | 2017-03-05 01:37:16 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-03-29 10:08:45 +0300 |
commit | faddd83db8a71623e78a4d919b2bb55e6a58439d (patch) | |
tree | bead543cb3d0b6ba1ac4a60a6d7f8b65a2985d19 | |
parent | 6c622ed08bb56f08f4cc4dbf6251220ccf7ba2ba (diff) | |
download | rneovim-faddd83db8a71623e78a4d919b2bb55e6a58439d.tar.gz rneovim-faddd83db8a71623e78a4d919b2bb55e6a58439d.tar.bz2 rneovim-faddd83db8a71623e78a4d919b2bb55e6a58439d.zip |
eval: Fix SEGV in test49
-rw-r--r-- | src/nvim/eval.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index cab9d07e56..882b2dfa74 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -2055,6 +2055,7 @@ static char_u *get_lval(char_u *const name, typval_T *const rettv, lp->ll_exp_name = (char *)make_expanded_name(name, expr_start, expr_end, (char_u *)p); + lp->ll_name = lp->ll_exp_name; if (lp->ll_exp_name == NULL) { /* Report an invalid expression in braces, unless the * expression evaluation has been cancelled due to an @@ -2064,9 +2065,10 @@ static char_u *get_lval(char_u *const name, typval_T *const rettv, EMSG2(_(e_invarg2), name); return NULL; } + lp->ll_name_len = 0; + } else { + lp->ll_name_len = strlen(lp->ll_name); } - lp->ll_name = lp->ll_exp_name; - lp->ll_name_len = strlen(lp->ll_name); } else { lp->ll_name = (const char *)name; lp->ll_name_len = (size_t)((const char *)p - lp->ll_name); |