changeset 10869:f8ebfa168818 v8.0.0324

patch 8.0.0324: illegal memory access with a wrong yank range commit https://github.com/vim/vim/commit/f1f6f3f7df2938b3583e341482d96c1d53124c51 Author: Bram Moolenaar <Bram@vim.org> 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)
author Christian Brabandt <cb@256bit.org>
date Thu, 09 Feb 2017 22:30:05 +0100
parents 82c6ce74aed8
children cf9dc73fc3fa
files src/ex_docmd.c src/testdir/test_cmdline.vim src/version.c
diffstat 3 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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 != ',')
--- 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 /\<c-a>\<c-b>\"\<cr>", 'tx')
--- 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,