menu: Don't highlight disabled entries
authorMatt Fleming <matt.fleming@intel.com>
Tue, 9 Oct 2012 12:33:51 +0000 (13:33 +0100)
committerMatt Fleming <matt.fleming@intel.com>
Tue, 9 Oct 2012 13:04:17 +0000 (14:04 +0100)
There's an off-by-one bug in the menu input handling code which makes
it possible to highlight/select the last entry in a menu even if that
entry is disabled.

It should be noted that you can't actually *do* anything with the
disabled entry, i.e. edit or execute it. Still, allowing it to be
highlighted does look a little strange.

Reported-by: Matt Sephton <matt.sephton@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
com32/menu/menumain.c

index 5b3f6bd..7c58979 100644 (file)
@@ -958,8 +958,7 @@ static const char *run_menu(void)
 
        case KEY_DOWN:
        case KEY_CTRL('N'):
-           while (entry < cm->nentries - 1) {
-               entry++;
+           while (++entry < cm->nentries) {
                if (entry >= top + MENU_ROWS)
                    top += MENU_ROWS;
                if (!is_disabled(cm->menu_entries[entry]))