0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

patch 9.0.1331: illegal memory access when using :ball in Visual mode

Problem:    Illegal memory access when using :ball in Visual mode.
Solution:   Stop Visual mode when using :ball. (Pavel Mayorov, closes #11923)
This commit is contained in:
Pavel Mayorov
2023-02-20 14:35:20 +00:00
committed by Bram Moolenaar
parent af93691b53
commit e1121b1394
3 changed files with 27 additions and 0 deletions

View File

@@ -5402,6 +5402,10 @@ ex_buffer_all(exarg_T *eap)
else
all = TRUE;
// Stop Visual mode, the cursor and "VIsual" may very well be invalid after
// switching to another buffer.
reset_VIsual_and_resel();
setpcmark();
#ifdef FEAT_GUI

View File

@@ -1534,4 +1534,25 @@ func Test_switch_buffer_ends_visual_mode()
exe 'bwipe!' buf2
endfunc
" Check fix for the heap-based buffer overflow bug found in the function
" utfc_ptr2len and reported at
" https://huntr.dev/bounties/ae933869-a1ec-402a-bbea-d51764c6618e
func Test_heap_buffer_overflow()
enew
set updatecount=0
norm R0
split other
norm R000
exe "norm \<C-V>l"
ball
call assert_equal(getpos("."), getpos("v"))
call assert_equal('n', mode())
norm zW
%bwipe!
set updatecount&
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1331,
/**/
1330,
/**/