# HG changeset patch # User Bram Moolenaar # Date 1405521028 -7200 # Node ID 72ee0db83788638c36bbcb076cabc2ba6c8cd4e7 # Parent f37b2f0479ca4c41b70159f786cab84bc21ed1ce updated for version 7.4.369 Problem: Using freed memory when exiting while compiled with EXITFREE. Solution: Set curwin to NULL and check for that. (Dominique Pelle) diff --git a/src/buffer.c b/src/buffer.c --- a/src/buffer.c +++ b/src/buffer.c @@ -5702,8 +5702,8 @@ buf_delete_signs(buf) signlist_T *next; /* When deleting the last sign need to redraw the windows to remove the - * sign column. */ - if (buf->b_signlist != NULL) + * sign column. Not when curwin is NULL (this means we're exiting). */ + if (buf->b_signlist != NULL && curwin != NULL) { redraw_buf_later(buf, NOT_VALID); changed_cline_bef_curs(); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 369, +/**/ 368, /**/ 367, diff --git a/src/window.c b/src/window.c --- a/src/window.c +++ b/src/window.c @@ -2489,6 +2489,10 @@ win_free_all() while (firstwin != NULL) (void)win_free_mem(firstwin, &dummy, NULL); + + /* No window should be used after this. Set curwin to NULL to crash + * instead of using freed memory. */ + curwin = NULL; } #endif