summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-01-22 15:19:22 +0100
committerBram Moolenaar <Bram@vim.org>2017-01-22 15:19:22 +0100
commitca24e2cfcfd3f064ea1674886e3dcaa8254ad8d7 (patch)
tree0e4cc667364e669e5dfcf5a4874960621bfe3360
parent423977d3cebac2be1158b1d11da60fe96db4b750 (diff)
patch 8.0.0213: Netbeans specialKeys command does not check argument lengthv8.0.0213
Problem: The Netbeans "specialKeys" command does not check if the argument fits in the buffer. (Coverity) Solution: Add a length check.
-rw-r--r--src/netbeans.c14
-rw-r--r--src/version.c2
2 files changed, 11 insertions, 5 deletions
diff --git a/src/netbeans.c b/src/netbeans.c
index cc55604127..fb4cb766d0 100644
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -2332,7 +2332,8 @@ special_keys(char_u *args)
char *save_str = nb_unquote(args, NULL);
char *tok = strtok(save_str, " ");
char *sep;
- char keybuf[64];
+#define KEYBUFLEN 64
+ char keybuf[KEYBUFLEN];
char cmdbuf[256];
while (tok != NULL)
@@ -2359,10 +2360,13 @@ special_keys(char_u *args)
tok++;
}
- strcpy(&keybuf[i], tok);
- vim_snprintf(cmdbuf, sizeof(cmdbuf),
- "<silent><%s> :nbkey %s<CR>", keybuf, keybuf);
- do_map(0, (char_u *)cmdbuf, NORMAL, FALSE);
+ if (strlen(tok) + i < KEYBUFLEN)
+ {
+ strcpy(&keybuf[i], tok);
+ vim_snprintf(cmdbuf, sizeof(cmdbuf),
+ "<silent><%s> :nbkey %s<CR>", keybuf, keybuf);
+ do_map(0, (char_u *)cmdbuf, NORMAL, FALSE);
+ }
tok = strtok(NULL, " ");
}
vim_free(save_str);
diff --git a/src/version.c b/src/version.c
index 741b8da1e9..592c77ca73 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 */
/**/
+ 213,
+/**/
212,
/**/
211,