1
0
forked from aniani/vim

patch 9.0.1070: reading beyond array size

Problem:    Reading beyond array size.
Solution:   Only use name[0] and name[1], do not use "name" as a string.
This commit is contained in:
Bram Moolenaar
2022-12-17 15:35:43 +00:00
parent 417e88bb75
commit b26461715b
2 changed files with 9 additions and 5 deletions

View File

@@ -4389,7 +4389,8 @@ clear_termcodes(void)
#define ATC_FROM_TERM 55 #define ATC_FROM_TERM 55
/* /*
* Add a new entry to the list of terminal codes. * Add a new entry for "name[2]" to the list of terminal codes.
* Note that "name" may not have a terminating NUL.
* The list is kept alphabetical for ":set termcap" * The list is kept alphabetical for ":set termcap"
* "flags" is TRUE when replacing 7-bit by 8-bit controls is desired. * "flags" is TRUE when replacing 7-bit by 8-bit controls is desired.
* "flags" can also be ATC_FROM_TERM for got_code_from_term(). * "flags" can also be ATC_FROM_TERM for got_code_from_term().
@@ -4497,7 +4498,8 @@ add_termcode(char_u *name, char_u *string, int flags)
{ {
// They are equal but for the ";*": don't add it. // They are equal but for the ";*": don't add it.
#ifdef FEAT_EVAL #ifdef FEAT_EVAL
ch_log(NULL, "Termcap entry %s did not change", name); ch_log(NULL, "Termcap entry %c%c did not change",
name[0], name[1]);
#endif #endif
vim_free(s); vim_free(s);
return; return;
@@ -4507,8 +4509,8 @@ add_termcode(char_u *name, char_u *string, int flags)
{ {
// Replace old code. // Replace old code.
#ifdef FEAT_EVAL #ifdef FEAT_EVAL
ch_log(NULL, "Termcap entry %s was: %s", ch_log(NULL, "Termcap entry %c%c was: %s",
name, termcodes[i].code); name[0], name[1], termcodes[i].code);
#endif #endif
vim_free(termcodes[i].code); vim_free(termcodes[i].code);
--tc_len; --tc_len;
@@ -4528,7 +4530,7 @@ add_termcode(char_u *name, char_u *string, int flags)
} }
#ifdef FEAT_EVAL #ifdef FEAT_EVAL
ch_log(NULL, "%s termcap entry %s to %s", action, name, s); ch_log(NULL, "%s termcap entry %c%c to %s", action, name[0], name[1], s);
#endif #endif
termcodes[i].name[0] = name[0]; termcodes[i].name[0] = name[0];
termcodes[i].name[1] = name[1]; termcodes[i].name[1] = name[1];

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1070,
/**/ /**/
1069, 1069,
/**/ /**/