From: Bram Moolenaar Date: Mon, 26 Jun 2017 07:59:35 +0000 (+0200) Subject: patch 8.0.0679: using freed memory X-Git-Tag: v8.0.0679 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=41cc038ff83498c589c7d25b3d2984145528eb92;p=vim patch 8.0.0679: using freed memory Problem: Using freed memory. Solution: Get the parent frame pointer earlier. --- diff --git a/src/version.c b/src/version.c index 192165fc6..0deebee23 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 679, /**/ 678, /**/ diff --git a/src/window.c b/src/window.c index 8078e011d..192721708 100644 --- a/src/window.c +++ b/src/window.c @@ -2282,7 +2282,7 @@ win_close(win_T *win, int free_buf) int dir; int help_window = FALSE; tabpage_T *prev_curtab = curtab; - frame_T *win_frame = win->w_frame; + frame_T *win_frame = win->w_frame->fr_parent; if (last_window()) { @@ -2462,8 +2462,7 @@ win_close(win_T *win, int free_buf) if (p_ea && (*p_ead == 'b' || *p_ead == dir)) /* If the frame of the closed window contains the new current window, * only resize that frame. Otherwise resize all windows. */ - win_equal(curwin, - curwin->w_frame->fr_parent == win_frame->fr_parent, dir); + win_equal(curwin, curwin->w_frame->fr_parent == win_frame, dir); else win_comp_pos(); if (close_curwin)