From: Bram Moolenaar Date: Wed, 16 Jul 2014 14:30:28 +0000 (+0200) Subject: updated for version 7.4.369 X-Git-Tag: v7.4.369 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4e036c9e6f61ac9fca7be561da0a04d6fc36f9b8;p=vim 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 index 7a6dbc591..5a9f8a786 100644 --- 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 index 407541af0..cd1ce94c5 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 369, /**/ 368, /**/ diff --git a/src/window.c b/src/window.c index cbf0ff86b..de85739a0 100644 --- 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