vboot/ui: Fix access on to_dev screen
Broken recovery mode should not access to_dev screen.
BUG=b:146399181
TEST=CC=x86_64-pc-linux-gnu-clang;
make clean && make runtests
BRANCH=none
Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org>
Change-Id: I3e5802c14968aafe40d25e69505c518c0c5b45d3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2228256
Reviewed-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
diff --git a/firmware/2lib/2ui_screens.c b/firmware/2lib/2ui_screens.c
index 61cbb0f..01cd65a 100644
--- a/firmware/2lib/2ui_screens.c
+++ b/firmware/2lib/2ui_screens.c
@@ -148,7 +148,8 @@
vb2_error_t advanced_options_init(struct vb2_ui_context *ui)
{
ui->state.selected_item = ADVANCED_OPTIONS_ITEM_DEVELOPER_MODE;
- if (vb2_get_sd(ui->ctx)->flags & VB2_SD_FLAG_DEV_MODE_ENABLED) {
+ if (vb2_get_sd(ui->ctx)->flags & VB2_SD_FLAG_DEV_MODE_ENABLED ||
+ !vb2_allow_recovery(ui->ctx)) {
ui->state.disabled_item_mask |=
1 << ADVANCED_OPTIONS_ITEM_DEVELOPER_MODE;
ui->state.selected_item = ADVANCED_OPTIONS_ITEM_BACK;