Permalink
Browse files

patch 8.0.1214: accessing freed memory when EXITFREE is set

Problem:    Accessing freed memory when EXITFREE is set and there is more than
            one tab and window. (Dominique Pelle)
Solution:   Free options later.  Skip redraw when exiting.
  • Loading branch information...
brammool committed Oct 23, 2017
1 parent 2e4cb3b commit 4f1982800f0aff28df6875e718a786f6c4b11ad9
Showing with 6 additions and 2 deletions.
  1. +3 −1 src/misc2.c
  2. +1 −1 src/screen.c
  3. +2 −0 src/version.c
View
@@ -1135,7 +1135,6 @@ free_all_mem(void)
free_all_autocmds();
# endif
clear_termcodes();
free_all_options();
free_all_marks();
alist_clear(&global_alist);
free_homedir();
@@ -1196,6 +1195,9 @@ free_all_mem(void)
/* Destroy all windows. Must come before freeing buffers. */
win_free_all();
/* Free all option values. Must come after closing windows. */
free_all_options();
/* Free all buffers. Reset 'autochdir' to avoid accessing things that
* were freed already. */
#ifdef FEAT_AUTOCHDIR
View
@@ -203,7 +203,7 @@ redraw_win_later(
win_T *wp,
int type)
{
if (wp->w_redr_type < type)
if (!exiting && wp->w_redr_type < type)
{
wp->w_redr_type = type;
if (type >= NOT_VALID)
View
@@ -761,6 +761,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1214,
/**/
1213,
/**/

0 comments on commit 4f19828

Please sign in to comment.