mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.2.0428: buffer name may leak
Problem: Buffer name may leak. Solution: Free the buffer name before overwriting it.
This commit is contained in:
@@ -465,7 +465,7 @@ term_start(
|
|||||||
buf_T *buf;
|
buf_T *buf;
|
||||||
|
|
||||||
// Create a new buffer without a window. Make it the current buffer for
|
// Create a new buffer without a window. Make it the current buffer for
|
||||||
// a moment to be able to do the initialisations.
|
// a moment to be able to do the initializations.
|
||||||
buf = buflist_new((char_u *)"", NULL, (linenr_T)0,
|
buf = buflist_new((char_u *)"", NULL, (linenr_T)0,
|
||||||
BLN_NEW | BLN_LISTED);
|
BLN_NEW | BLN_LISTED);
|
||||||
if (buf == NULL || ml_open(buf) == FAIL)
|
if (buf == NULL || ml_open(buf) == FAIL)
|
||||||
@@ -526,9 +526,15 @@ term_start(
|
|||||||
apply_autocmds(EVENT_BUFFILEPRE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFFILEPRE, NULL, NULL, FALSE, curbuf);
|
||||||
|
|
||||||
if (opt->jo_term_name != NULL)
|
if (opt->jo_term_name != NULL)
|
||||||
|
{
|
||||||
|
vim_free(curbuf->b_ffname);
|
||||||
curbuf->b_ffname = vim_strsave(opt->jo_term_name);
|
curbuf->b_ffname = vim_strsave(opt->jo_term_name);
|
||||||
|
}
|
||||||
else if (argv != NULL)
|
else if (argv != NULL)
|
||||||
|
{
|
||||||
|
vim_free(curbuf->b_ffname);
|
||||||
curbuf->b_ffname = vim_strsave((char_u *)"!system");
|
curbuf->b_ffname = vim_strsave((char_u *)"!system");
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -1983,7 +1989,7 @@ term_enter_job_mode()
|
|||||||
redraw_buf_and_status_later(curbuf, NOT_VALID);
|
redraw_buf_and_status_later(curbuf, NOT_VALID);
|
||||||
#ifdef FEAT_PROP_POPUP
|
#ifdef FEAT_PROP_POPUP
|
||||||
if (WIN_IS_POPUP(curwin))
|
if (WIN_IS_POPUP(curwin))
|
||||||
redraw_win_later(curwin, NOT_VALID);
|
redraw_later(NOT_VALID);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4321,6 +4327,8 @@ term_update_colors(void)
|
|||||||
vterm_obtain_state(term->tl_vterm),
|
vterm_obtain_state(term->tl_vterm),
|
||||||
&term->tl_default_color.fg,
|
&term->tl_default_color.fg,
|
||||||
&term->tl_default_color.bg);
|
&term->tl_default_color.bg);
|
||||||
|
|
||||||
|
redraw_later(NOT_VALID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -738,6 +738,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
428,
|
||||||
/**/
|
/**/
|
||||||
427,
|
427,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user