diff options
author | ZyX <kp-pav@yandex.ru> | 2017-07-17 01:55:10 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-07-17 01:55:10 +0300 |
commit | f4744e18219726d2eaa57b26198166ea255c62a4 (patch) | |
tree | e32926c5133d02f55cc978a3ce73ce269a47ee77 /src/nvim/ex_getln.c | |
parent | 2a6423eba732b005e277bac393f2246308dcc378 (diff) | |
download | rneovim-f4744e18219726d2eaa57b26198166ea255c62a4.tar.gz rneovim-f4744e18219726d2eaa57b26198166ea255c62a4.tar.bz2 rneovim-f4744e18219726d2eaa57b26198166ea255c62a4.zip |
ex_getln: Do not goto color_cmdline_end without first cleaning up
The issue with debug mode was actually not cleaning up after `try_enter`:
location `&tstate` was pointing to got invalidated and received some “garbage”
(actually, values that got stored on the stack afterwards). But pointer to that
garbage was still stored in `msg_list`, so next attempt to check it resulted in
a crash.
Diffstat (limited to 'src/nvim/ex_getln.c')
-rw-r--r-- | src/nvim/ex_getln.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 275e1b7fdd..1052053ddf 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -2372,8 +2372,6 @@ static bool color_cmdline(void) dgc_ret = tv_dict_get_callback(&globvardict, S_LEN("Nvim_color_expr"), &color_cb); can_free_cb = true; - } else { - goto color_cmdline_end; } if (!try_leave(&tstate, &err) || !dgc_ret) { goto color_cmdline_error; |