diff options
author | Michael Brown <mcb30@ipxe.org> | 2013-03-06 14:41:46 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2013-03-06 14:41:46 +0000 |
commit | b8cbdbbb53512ff35515b3da78b8451b6b8906ae (patch) | |
tree | aa582cdaacc7a1a02db5a6653d8a3feef94b6233 /src/hci/tui/menu_ui.c | |
parent | eb5a2ba5962579e514b377f5fdab7292be0fb2a7 (diff) | |
download | ipxe-b8cbdbbb53512ff35515b3da78b8451b6b8906ae.tar.gz |
[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/hci/tui/menu_ui.c')
-rw-r--r-- | src/hci/tui/menu_ui.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/hci/tui/menu_ui.c b/src/hci/tui/menu_ui.c index dfa1d2e76..497407953 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; |