# HG changeset patch # User Christian Brabandt # Date 1486675805 -3600 # Node ID f8ebfa168818babfc97c2c3a0814c12cdc18a2d4 # Parent 82c6ce74aed8a0c939f34686603d37c90e14c464 patch 8.0.0324: illegal memory access with a wrong yank range commit https://github.com/vim/vim/commit/f1f6f3f7df2938b3583e341482d96c1d53124c51 Author: Bram Moolenaar Date: Thu Feb 9 22:28:20 2017 +0100 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) diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -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 != ',') diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -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 /\\\"\", 'tx') diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 324, +/**/ 323, /**/ 322,