aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/option.c7
-rw-r--r--src/nvim/testdir/test_options.vim10
-rw-r--r--src/nvim/version.c2
3 files changed, 15 insertions, 4 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 74250e83e6..13aadb71bb 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -2997,9 +2997,10 @@ did_set_string_option (
if (s[-1] == 'k' || s[-1] == 's') {
/* skip optional filename after 'k' and 's' */
while (*s && *s != ',' && *s != ' ') {
- if (*s == '\\')
- ++s;
- ++s;
+ if (*s == '\\' && s[1] != NUL) {
+ s++;
+ }
+ s++;
}
} else {
if (errbuf != NULL) {
diff --git a/src/nvim/testdir/test_options.vim b/src/nvim/testdir/test_options.vim
index 2ffe63787b..8a9d793a2e 100644
--- a/src/nvim/testdir/test_options.vim
+++ b/src/nvim/testdir/test_options.vim
@@ -103,3 +103,13 @@ func Test_keymap_valid()
call assert_fails(":set kmp=trunc\x00name", "E544:")
call assert_fails(":set kmp=trunc\x00name", "trunc")
endfunc
+
+func Test_complete()
+ " Trailing single backslash used to cause invalid memory access.
+ set complete=s\
+ new
+ call feedkeys("i\<C-N>\<Esc>", 'xt')
+ bwipe!
+ set complete&
+endfun
+
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 16523380cc..a060b4a74f 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -619,7 +619,7 @@ static const int included_patches[] = {
// 336,
// 335,
// 334,
- // 333,
+ 333,
// 332,
331,
// 330,