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.
This commit is contained in:
ZyX
2017-07-17 01:55:10 +03:00
parent 2a6423eba7
commit f4744e1821
2 changed files with 36 additions and 2 deletions

View File

@@ -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;