diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-02-23 18:08:56 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-02-23 18:08:56 +0100 |
commit | 60629d642541a089c322e65963c0a77e5f77eb79 (patch) | |
tree | 1f5a0613727dbebfd43252caaaebed6c4bfa051d | |
parent | 24922ec23360e7ea7c5a803c9edf476bb6395b32 (diff) | |
download | vim-60629d642541a089c322e65963c0a77e5f77eb79.zip |
patch 8.0.0358: invalid memory access in C-indent code
Problem: Invalid memory access in C-indent code.
Solution: Don't go over end of empty line. (Dominique Pelle, closes #1492)
-rw-r--r-- | src/edit.c | 3 | ||||
-rw-r--r-- | src/testdir/test_options.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 11 insertions, 1 deletions
diff --git a/src/edit.c b/src/edit.c index 25a123e88..c4e7ddd18 100644 --- a/src/edit.c +++ b/src/edit.c @@ -8181,7 +8181,8 @@ in_cinkeys( { if (try_match && *look == keytyped) return TRUE; - ++look; + if (*look != NUL) + ++look; } /* diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim index 1ee1f8fa8..076d8b2db 100644 --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -135,6 +135,13 @@ func Check_dir_option(name) call assert_fails("set " . a:name . "=/not.*there", "E474:") endfunc +func Test_cinkeys() + " This used to cause invalid memory access + set cindent cinkeys=0 + norm a + set cindent& cinkeys& +endfunc + func Test_dictionary() call Check_dir_option('dictionary') endfunc diff --git a/src/version.c b/src/version.c index 2d076cc14..9de1850de 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 */ /**/ + 358, +/**/ 357, /**/ 356, |