]> granicus.if.org Git - vim/commitdiff
patch 8.2.0392: Coverity warns for using array index out of range v8.2.0392
authorBram Moolenaar <Bram@vim.org>
Mon, 16 Mar 2020 19:04:41 +0000 (20:04 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 16 Mar 2020 19:04:41 +0000 (20:04 +0100)
Problem:    Coverity warns for using array index out of range.
Solution:   Add extra "if" to avoid warning.

src/menu.c
src/version.c

index 8e33cff765d4a7ef411e55dbc2d3fb3498c50328..3a9d2e41f2a33f965cb00ccb46eded2e0478ae00 100644 (file)
@@ -2877,25 +2877,29 @@ menuitem_getinfo(vimmenu_T *menu, int modes, dict_T *dict)
        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 *)"<Nop>") :
-                   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 *)"<Nop>")
+                               : 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)
     {
index 78d89402a1e6b079e9c7e56feb8fbfb468dd4ffe..fdd9d39da9ce214d95393024c9c33fd26c4dde17 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    392,
 /**/
     391,
 /**/