changeset 10938:3b82ab325d59 v8.0.0358

patch 8.0.0358: invalid memory access in C-indent code commit https://github.com/vim/vim/commit/60629d642541a089c322e65963c0a77e5f77eb79 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Feb 23 18:08:56 2017 +0100 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 https://github.com/vim/vim/issues/1492)
author Christian Brabandt <cb@256bit.org>
date Thu, 23 Feb 2017 18:15:04 +0100
parents ae3832cc9a28
children 86572a2aab2e
files src/edit.c src/testdir/test_options.vim src/version.c
diffstat 3 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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;
 	}
 
 	/*
--- 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
--- 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,