# HG changeset patch # User Bram Moolenaar # Date 1584386104 -3600 # Node ID 897cb43a5c720ed053ed11e03f58f3bcf79cc963 # Parent 00e4b686ae2b81323fda5d8fe6aee357cd3d3557 patch 8.2.0392: Coverity warns for using array index out of range Commit: https://github.com/vim/vim/commit/56cb3378727783da2d246b9c5091784821666cfa Author: Bram Moolenaar Date: Mon Mar 16 20:04:41 2020 +0100 patch 8.2.0392: Coverity warns for using array index out of range Problem: Coverity warns for using array index out of range. Solution: Add extra "if" to avoid warning. diff --git a/src/menu.c b/src/menu.c --- a/src/menu.c +++ b/src/menu.c @@ -2877,25 +2877,29 @@ menuitem_getinfo(vimmenu_T *menu, int mo int bit; // Get the first mode in which the menu is available - for (bit = 0; (bit < MENU_MODES) && !((1 << bit) & modes); bit++) + for (bit = 0; bit < MENU_MODES && !((1 << bit) & modes); bit++) ; - if (menu->strings[bit] != NULL) - status = dict_add_string(dict, "rhs", - *menu->strings[bit] == NUL ? - vim_strsave((char_u *)"") : - str2special_save(menu->strings[bit], FALSE)); - if (status == OK) - status = dict_add_bool(dict, "noremenu", - menu->noremap[bit] == REMAP_NONE); - if (status == OK) - status = dict_add_bool(dict, "script", - menu->noremap[bit] == REMAP_SCRIPT); - if (status == OK) - status = dict_add_bool(dict, "silent", menu->silent[bit]); - if (status == OK) - status = dict_add_bool(dict, "enabled", - ((menu->enabled & (1 << bit)) != 0)); + if (bit < MENU_MODES) // just in case, avoid Coverity warning + { + if (menu->strings[bit] != NULL) + status = dict_add_string(dict, "rhs", + *menu->strings[bit] == NUL + ? vim_strsave((char_u *)"") + : str2special_save(menu->strings[bit], FALSE)); + if (status == OK) + status = dict_add_bool(dict, "noremenu", + menu->noremap[bit] == REMAP_NONE); + if (status == OK) + status = dict_add_bool(dict, "script", + menu->noremap[bit] == REMAP_SCRIPT); + if (status == OK) + status = dict_add_bool(dict, "silent", menu->silent[bit]); + if (status == OK) + status = dict_add_bool(dict, "enabled", + ((menu->enabled & (1 << bit)) != 0)); + } } + // If there are submenus, add all the submenu display names if (status == OK && menu->children != NULL) { diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 392, +/**/ 391, /**/ 390,