Mercurial > vim
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);