diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-02-18 23:12:01 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-02-18 23:12:01 +0100 |
commit | 46522af72424c7fadfa7a4cbba3dd21b82d19131 (patch) | |
tree | 3fa8c013e9bf1ad3112367c3870ae3a76d745321 | |
parent | 803452046ba6cda7a2896626572eb78b2358c965 (diff) | |
download | vim-git-46522af72424c7fadfa7a4cbba3dd21b82d19131.tar.gz |
patch 8.0.0339: illegal memory access with vi'v8.0.0339
Problem: Illegal memory access with vi'
Solution: For quoted text objects bail out if the Visual area spans more
than one line.
-rw-r--r-- | src/search.c | 4 | ||||
-rw-r--r-- | src/testdir/test_visual.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 13 insertions, 0 deletions
diff --git a/src/search.c b/src/search.c index 6e62184d4..83c584272 100644 --- a/src/search.c +++ b/src/search.c @@ -4357,6 +4357,10 @@ current_quote( /* Correct cursor when 'selection' is exclusive */ if (VIsual_active) { + /* this only works within one line */ + if (VIsual.lnum != curwin->w_cursor.lnum) + return FALSE; + vis_bef_curs = lt(VIsual, curwin->w_cursor); if (*p_sel == 'e' && vis_bef_curs) dec_cursor(); diff --git a/src/testdir/test_visual.vim b/src/testdir/test_visual.vim index 9d093d34e..227da87f8 100644 --- a/src/testdir/test_visual.vim +++ b/src/testdir/test_visual.vim @@ -43,3 +43,10 @@ func Test_Visual_vapo() normal vapo bwipe! endfunc + +func Test_Visual_inner_quote() + new + normal oxX + normal vki' + bwipe! +endfunc diff --git a/src/version.c b/src/version.c index aac6dae67..41a0321ed 100644 --- 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 */ /**/ + 339, +/**/ 338, /**/ 337, |