diff options
author | Bram Moolenaar <Bram@vim.org> | 2015-08-13 22:53:29 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2015-08-13 22:53:29 +0200 |
commit | 1560d07045d416d0abf9731c43c28925f61515b6 (patch) | |
tree | 41bfa68f9e79834aac1134f344360619d5c17ed4 | |
parent | 8e8b486727a473fa21dccde3ec4541f7ee70c2f4 (diff) | |
download | vim-1560d07045d416d0abf9731c43c28925f61515b6.zip |
patch 7.4.825
Problem: Invalid memory access for ":syn keyword x a[".
Solution: Do not skip over the NUL. (Dominique Pelle)
-rw-r--r-- | src/syntax.c | 11 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/syntax.c b/src/syntax.c index e4ae0b1ae..c28a24c5c 100644 --- 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); diff --git a/src/version.c b/src/version.c index da75ff162..fd9bf1878 100644 --- 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, |