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

patch 8.0.0324: illegal memory access with a wrong yank range

Problem:    Illegal memory access with "1;y".
Solution:   Call check_cursor() instead of check_cursor_lnum(). (Dominique
            Pelle, closes #1455)
This commit is contained in:
Bram Moolenaar
2017-02-09 22:28:20 +01:00
parent 31eb139b88
commit f1f6f3f7df
3 changed files with 16 additions and 3 deletions

View File

@@ -2295,8 +2295,8 @@ do_one_cmd(
if (!ea.skip)
{
curwin->w_cursor.lnum = ea.line2;
/* don't leave the cursor on an illegal line */
check_cursor_lnum();
/* don't leave the cursor on an illegal line or column */
check_cursor();
}
}
else if (*ea.cmd != ',')

View File

@@ -289,13 +289,24 @@ func Test_remove_char_in_cmdline()
call assert_equal('"def', @:)
endfunc
func Test_illegal_address()
func Test_illegal_address1()
new
2;'(
2;')
quit
endfunc
func Test_illegal_address2()
call writefile(['c', 'x', ' x', '.', '1;y'], 'Xtest.vim')
new
source Xtest.vim
" Trigger calling validate_cursor()
diffsp Xtest.vim
quit!
bwipe!
call delete('Xtest.vim')
endfunc
func Test_cmdline_complete_wildoptions()
help
call feedkeys(":tag /\<c-a>\<c-b>\"\<cr>", 'tx')

View File

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