summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShelley Chen <shchen@chromium.org>2017-01-10 16:36:06 -0800
committerchrome-bot <chrome-bot@chromium.org>2017-01-24 10:21:27 -0800
commit666bd54416a0cd9f47cdffa9b32439be057bd50d (patch)
treefa65c499d0194cbf2cb41a5dde82df8d219b0f63
parent0d82853f3bf9b7871597e058cb4d9103fb70dd9e (diff)
downloadvboot-666bd54416a0cd9f47cdffa9b32439be057bd50d.tar.gz
firmware: Prevent wraparound when scrolling through menus
BUG=chrome-os-partner:61275 BRANCH=None TEST=reboot and scroll to ends of menus to make sure that they don't wraparound. Change-Id: I9ba83b23939140d23fe54858b9a10f873091ff72 Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/426410 Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r--firmware/lib/vboot_ui_menu.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/firmware/lib/vboot_ui_menu.c b/firmware/lib/vboot_ui_menu.c
index b5e786a7..3a45afac 100644
--- a/firmware/lib/vboot_ui_menu.c
+++ b/firmware/lib/vboot_ui_menu.c
@@ -657,15 +657,18 @@ VbError_t vb2_developer_menu(struct vb2_context *ctx, VbCommonParams *cparams)
case VB_KEY_UP:
vb2_get_current_menu_size(current_menu,
NULL, &menu_size);
- current_menu_idx = (current_menu_idx+menu_size-1) %
- menu_size;
+ // do not wrap selection index
+ if (current_menu_idx > 0)
+ current_menu_idx--;
vb2_print_current_menu();
break;
case VB_BUTTON_VOL_DOWN:
case VB_KEY_DOWN:
vb2_get_current_menu_size(current_menu,
NULL, &menu_size);
- current_menu_idx = (current_menu_idx+1) % menu_size;
+ // do no wrap selection index
+ if (current_menu_idx < menu_size-1)
+ current_menu_idx++;
vb2_print_current_menu();
break;
case VB_KEY_RIGHT:
@@ -907,14 +910,16 @@ VbError_t vb2_recovery_menu(struct vb2_context *ctx, VbCommonParams *cparams)
case VB_KEY_UP:
VB2_DEBUG("VbBootRecoveryMenu() - pressed key VB_KEY_UP\n");
vb2_get_current_menu_size(current_menu, NULL, &menu_size);
- current_menu_idx = (current_menu_idx+menu_size-1) % menu_size;
+ if (current_menu_idx > 0)
+ current_menu_idx--;
vb2_print_current_menu();
break;
case VB_BUTTON_VOL_DOWN:
case VB_KEY_DOWN:
VB2_DEBUG("VbBootRecoveryMenu() - pressed key VB_KEY_DOWN\n");
vb2_get_current_menu_size(current_menu, NULL, &menu_size);
- current_menu_idx = (current_menu_idx+1) % menu_size;
+ if (current_menu_idx < menu_size-1)
+ current_menu_idx++;
vb2_print_current_menu();
break;
case VB_KEY_RIGHT: