ensure active menuitem is inside menu
authorFrank Wunderlich <frank-w@public-files.de>
Mon, 3 Dec 2018 10:23:41 +0000 (11:23 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 7 Dec 2018 13:13:48 +0000 (08:13 -0500)
Hi,

setting active menuitem currently can be outside of menu which results in invisible selection

attached Patch fixes this

regards Frank

>From 1d9c4cb8b3e2dd9b0a7a6a2d4a21684d0a099dbf Mon Sep 17 00:00:00 2001
From: Frank Wunderlich <frank-w@public-files.de>
Date: Sun, 2 Dec 2018 11:23:53 +0100
Subject: [PATCH] ensure active menuitem is inside menu

if active menuitem is defined via environment var it can be outside the menu (>=menuitem-count)

this patch resets this definition back to 0

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
cmd/bootmenu.c

index 979ac4a638df48b9552feb82dd80ddbe74e69b8e..7f88c1ed63252ba046f07a9b1b59e70ff06d8dad 100644 (file)
@@ -351,6 +351,12 @@ static struct bootmenu_data *bootmenu_create(int delay)
        }
 
        menu->count = i;
+
+       if ((menu->active >= menu->count)||(menu->active < 0)) { //ensure active menuitem is inside menu
+               printf("active menuitem (%d) is outside menu (0..%d)\n",menu->active,menu->count-1);
+               menu->active=0;
+       }
+
        return menu;
 
 cleanup: