aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2013-03-06 14:41:46 +0000
committerMichael Brown <mcb30@ipxe.org>2013-03-06 14:41:46 +0000
commitb8cbdbbb53512ff35515b3da78b8451b6b8906ae (patch)
treeaa582cdaacc7a1a02db5a6653d8a3feef94b6233 /src
parenteb5a2ba5962579e514b377f5fdab7292be0fb2a7 (diff)
downloadipxe-b8cbdbbb53512ff35515b3da78b8451b6b8906ae.zip
ipxe-b8cbdbbb53512ff35515b3da78b8451b6b8906ae.tar.gz
ipxe-b8cbdbbb53512ff35515b3da78b8451b6b8906ae.tar.bz2
[menu] Prevent character code zero from acting as a shortcut key
Unrecognised keys may be returned by getkey() as character code zero, which currently matches against the first menu item with no shortcut key defined. Prevent this unintended behaviour by explicitly checking that the menu item has a defined shortcut key. Reported-by: Ján ONDREJ (SAL) <ondrejj@salstar.sk> Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src')
-rw-r--r--src/hci/tui/menu_ui.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/hci/tui/menu_ui.c b/src/hci/tui/menu_ui.c
index dfa1d2e..4974079 100644
--- a/src/hci/tui/menu_ui.c
+++ b/src/hci/tui/menu_ui.c
@@ -247,7 +247,8 @@ static int menu_loop ( struct menu_ui *ui, struct menu_item **selected ) {
i = 0;
list_for_each_entry ( item, &ui->menu->items,
list ) {
- if ( item->shortcut == key ) {
+ if ( item->shortcut &&
+ ( item->shortcut == key ) ) {
ui->selected = i;
chosen = 1;
break;