Mercurial > vim
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')