diff options
author | Shougo <Shougo.Matsu@gmail.com> | 2017-01-15 09:08:27 +0900 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-01-15 01:08:27 +0100 |
commit | c88e4a270d54eae3fe8e6b93a0ed3898e4632be5 (patch) | |
tree | cba9412197e3bb14c826803b69211420a774fef3 /src | |
parent | b98da8de9823301dc2cb2f5fd14122a8afbcd50f (diff) | |
download | rneovim-c88e4a270d54eae3fe8e6b93a0ed3898e4632be5.tar.gz rneovim-c88e4a270d54eae3fe8e6b93a0ed3898e4632be5.tar.bz2 rneovim-c88e4a270d54eae3fe8e6b93a0ed3898e4632be5.zip |
vim-patch:7.4.1968 (#5949)
Problem: Invalid memory access with "\<C-">.
Solution: Do not recognize this as a special character. (Dominique Pelle)
https://github.com/vim/vim/commit/1d90a5a5af84250e226f8a9121e771f7b72aa894
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/keymap.c | 6 | ||||
-rw-r--r-- | src/nvim/testdir/test_expr.vim | 5 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
3 files changed, 10 insertions, 3 deletions
diff --git a/src/nvim/keymap.c b/src/nvim/keymap.c index 99e94fc60f..94bbaf4239 100644 --- a/src/nvim/keymap.c +++ b/src/nvim/keymap.c @@ -573,8 +573,10 @@ int find_special_key(const char_u **srcp, const size_t src_len, int *const modp, } else { l = 1; } - if (end - bp > l && bp[l + 1] == '>') { - bp += l; // anything accepted, like <C-?> + if (end - bp > l && bp[l] != '"' && bp[l + 1] == '>') { + // Anything accepted, like <C-?>, except <C-">, because the " + // ends the string. + bp += l; } } } diff --git a/src/nvim/testdir/test_expr.vim b/src/nvim/testdir/test_expr.vim index 7483973fca..189ecce2fe 100644 --- a/src/nvim/testdir/test_expr.vim +++ b/src/nvim/testdir/test_expr.vim @@ -92,3 +92,8 @@ endfunc func Test_set_reg_null_list() call setreg('x', v:_null_list) endfunc + +func Test_special_char() + " The failure is only visible using valgrind. + call assert_fails('echo "\<C-">') +endfunc diff --git a/src/nvim/version.c b/src/nvim/version.c index 3532d3dfab..70abbcef76 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -472,7 +472,7 @@ static int included_patches[] = { 1971, 1970, // 1969 NA - // 1968, + 1968, 1967, 1966, // 1965 NA |