1
0
forked from aniani/vim

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) if (!ea.skip)
{ {
curwin->w_cursor.lnum = ea.line2; curwin->w_cursor.lnum = ea.line2;
/* don't leave the cursor on an illegal line */ /* don't leave the cursor on an illegal line or column */
check_cursor_lnum(); check_cursor();
} }
} }
else if (*ea.cmd != ',') else if (*ea.cmd != ',')

View File

@@ -289,13 +289,24 @@ func Test_remove_char_in_cmdline()
call assert_equal('"def', @:) call assert_equal('"def', @:)
endfunc endfunc
func Test_illegal_address() func Test_illegal_address1()
new new
2;'( 2;'(
2;') 2;')
quit quit
endfunc 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() func Test_cmdline_complete_wildoptions()
help help
call feedkeys(":tag /\<c-a>\<c-b>\"\<cr>", 'tx') call feedkeys(":tag /\<c-a>\<c-b>\"\<cr>", 'tx')

View File

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