# HG changeset patch # User Christian Brabandt # Date 1499790603 -7200 # Node ID 0f7888a5ba682723b1316d38dad40293f1c11dfc # Parent d5fe79b99de45335144d12abd88cc1bb1ecbf284 patch 8.0.0707: freeing wrong memory with certain autocommands commit https://github.com/vim/vim/commit/f1d13478e3a7e1a86d52552c8c5571f00dc28ad1 Author: Bram Moolenaar Date: Tue Jul 11 18:28:46 2017 +0200 patch 8.0.0707: freeing wrong memory with certain autocommands Problem: Freeing wrong memory when manipulating buffers in autocommands. (James McCoy) Solution: Also set the w_s pointer if w_buffer was NULL. diff --git a/src/ex_cmds.c b/src/ex_cmds.c --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -3968,8 +3968,8 @@ do_ecmd( * We could instead free the synblock * and re-attach to buffer, perhaps. */ - if (curwin->w_buffer != NULL - && curwin->w_s == &(curwin->w_buffer->b_s)) + if (curwin->w_buffer == NULL + || curwin->w_s == &(curwin->w_buffer->b_s)) curwin->w_s = &(buf->b_s); #endif curwin->w_buffer = buf; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 707, +/**/ 706, /**/ 705,