Skip to content
Permalink
Browse files
patch 8.2.3564: invalid memory access when scrolling without valid sc…
…reen

Problem:    Invalid memory access when scrolling without a valid screen.
Solution:   Do not set VALID_BOTLINE in w_valid.
  • Loading branch information
brammool committed Oct 25, 2021
1 parent 2a52196 commit 777e7c21b7627be80961848ac560cb0a9978ff43
Showing with 21 additions and 4 deletions.
  1. +0 −1 src/move.c
  2. +19 −3 src/testdir/test_normal.vim
  3. +2 −0 src/version.c
@@ -199,7 +199,6 @@ update_topline(void)
check_cursor_lnum();
curwin->w_topline = curwin->w_cursor.lnum;
curwin->w_botline = curwin->w_topline;
curwin->w_valid |= VALID_BOTLINE|VALID_BOTLINE_AP;
curwin->w_scbind_pos = 1;
return;
}
@@ -34,14 +34,14 @@ func CountSpaces(type, ...)
else
silent exe "normal! `[v`]y"
endif
let g:a=strlen(substitute(@@, '[^ ]', '', 'g'))
let g:a = strlen(substitute(@@, '[^ ]', '', 'g'))
let &selection = sel_save
let @@ = reg_save
endfunc

func OpfuncDummy(type, ...)
" for testing operatorfunc
let g:opt=&linebreak
let g:opt = &linebreak

if a:0 " Invoked from Visual mode, use gv command.
silent exe "normal! gvy"
@@ -52,7 +52,7 @@ func OpfuncDummy(type, ...)
endif
" Create a new dummy window
new
let g:bufnr=bufnr('%')
let g:bufnr = bufnr('%')
endfunc

func Test_normal00_optrans()
@@ -987,6 +987,22 @@ func Test_vert_scroll_cmds()
close!
endfunc

func Test_scroll_in_ex_mode()
" This was using invalid memory because w_botline was invalid.
let lines =<< trim END
diffsplit
norm os00(
call writefile(['done'], 'Xdone')
qa!
END
call writefile(lines, 'Xscript')
call assert_equal(1, RunVim([], [], '--clean -X -Z -e -s -S Xscript'))
call assert_equal(['done'], readfile('Xdone'))

call delete('Xscript')
call delete('Xdone')
endfunc

" Test for the 'sidescroll' option
func Test_sidescroll_opt()
new
@@ -757,6 +757,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3564,
/**/
3563,
/**/

0 comments on commit 777e7c2

Please sign in to comment.