mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 9.1.0678: [security]: use-after-free in alist_add()
Problem: [security]: use-after-free in alist_add() (SuyueGuo) Solution: Lock the current window, so that the reference to the argument list remains valid. This fixes CVE-2024-43374 Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -1484,7 +1484,7 @@ do_buffer_ext(
|
||||
// (unless it's the only window). Repeat this so long as we end up in
|
||||
// a window with this buffer.
|
||||
while (buf == curbuf
|
||||
&& !(curwin->w_closing || curwin->w_buffer->b_locked > 0)
|
||||
&& !(win_locked(curwin) || curwin->w_buffer->b_locked > 0)
|
||||
&& (!ONE_WINDOW || first_tabpage->tp_next != NULL))
|
||||
{
|
||||
if (win_close(curwin, FALSE) == FAIL)
|
||||
@@ -5470,7 +5470,7 @@ ex_buffer_all(exarg_T *eap)
|
||||
: wp->w_width != Columns)
|
||||
|| (had_tab > 0 && wp != firstwin))
|
||||
&& !ONE_WINDOW
|
||||
&& !(wp->w_closing || wp->w_buffer->b_locked > 0)
|
||||
&& !(win_locked(wp) || wp->w_buffer->b_locked > 0)
|
||||
&& !win_unlisted(wp))
|
||||
{
|
||||
if (win_close(wp, FALSE) == FAIL)
|
||||
|
Reference in New Issue
Block a user