aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-03-05 01:37:16 +0300
committerZyX <kp-pav@yandex.ru>2017-03-29 10:08:45 +0300
commitfaddd83db8a71623e78a4d919b2bb55e6a58439d (patch)
treebead543cb3d0b6ba1ac4a60a6d7f8b65a2985d19
parent6c622ed08bb56f08f4cc4dbf6251220ccf7ba2ba (diff)
downloadrneovim-faddd83db8a71623e78a4d919b2bb55e6a58439d.tar.gz
rneovim-faddd83db8a71623e78a4d919b2bb55e6a58439d.tar.bz2
rneovim-faddd83db8a71623e78a4d919b2bb55e6a58439d.zip
eval: Fix SEGV in test49
-rw-r--r--src/nvim/eval.c6
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);