Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
patch 9.0.1189: invalid memory access with folding and using "L"
Problem:    Invalid memory access with folding and using "L".
Solution:   Prevent the cursor from moving to line zero.
  • Loading branch information
brammool committed Jan 13, 2023
1 parent c0c2c26 commit 232bdaa
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/normal.c
Expand Up @@ -3729,7 +3729,8 @@ nv_scroll(cmdarg_T *cap)
{
(void)hasFolding(curwin->w_cursor.lnum,
&curwin->w_cursor.lnum, NULL);
--curwin->w_cursor.lnum;
if (curwin->w_cursor.lnum > curwin->w_topline)
--curwin->w_cursor.lnum;
}
}
else
Expand Down
8 changes: 8 additions & 0 deletions src/testdir/test_fold.vim
Expand Up @@ -1675,4 +1675,12 @@ func Test_sort_closed_fold()
bwipe!
endfunc

func Test_indent_with_L_command()
" The "L" command moved the cursor to line zero, causing the text saved for
" undo to use line number -1, which caused trouble for undo later.
new
sil! norm 8RV{zf8=Lu
bwipe!
endfunc

" vim: shiftwidth=2 sts=2 expandtab
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -695,6 +695,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1189,
/**/
1188,
/**/
Expand Down

0 comments on commit 232bdaa

Please sign in to comment.