changeset 7017:0dbbdcf13e03 v7.4.825

patch 7.4.825 Problem: Invalid memory access for ":syn keyword x a[". Solution: Do not skip over the NUL. (Dominique Pelle)
author Bram Moolenaar <bram@vim.org>
date Thu, 13 Aug 2015 22:53:29 +0200
parents 8e6a279b5954
children d4e2b9821843
files src/syntax.c src/version.c
diffstat 2 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -4873,11 +4873,16 @@ syn_cmd_keyword(eap, syncing)
 			if (p[1] == NUL)
 			{
 			    EMSG2(_("E789: Missing ']': %s"), kw);
-			    kw = p + 2;		/* skip over the NUL */
-			    break;
+			    goto error;
 			}
 			if (p[1] == ']')
 			{
+			    if (p[2] != NUL)
+			    {
+				EMSG3(_("E890: trailing char after ']': %s]%s"),
+								kw, &p[2]);
+				goto error;
+			    }
 			    kw = p + 1;		/* skip over the "]" */
 			    break;
 			}
@@ -4898,7 +4903,7 @@ syn_cmd_keyword(eap, syncing)
 		    }
 		}
 	    }
-
+error:
 	    vim_free(keyword_copy);
 	    vim_free(syn_opt_arg.cont_in_list);
 	    vim_free(syn_opt_arg.next_list);
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    825,
+/**/
     824,
 /**/
     823,