From c5cf15ed02aefe4f2654ae6a0b7794733125b8d2 Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Wed, 7 Apr 2021 12:15:20 -0400 Subject: menu.c submenu items should be limited to MAX_MENU_SUBITEMS maybe someone is checking somewhere but pretty sure the error message is a buffer overflow Change-Id: I3b95db12bbbd4631223bbbbe540beb2d0dd984c6 --- apps/menu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/menu.c b/apps/menu.c index a7d52896a6..b25aa46a2c 100644 --- a/apps/menu.c +++ b/apps/menu.c @@ -180,7 +180,8 @@ static void init_menu_lists(const struct menu_item_ex *menu, struct gui_synclist *lists, int selected, bool callback, struct viewport parent[NB_SCREENS]) { - int i, count = MENU_GET_COUNT(menu->flags); + int i; + int count = MIN(MENU_GET_COUNT(menu->flags), MAX_MENU_SUBITEMS); int type = (menu->flags&MENU_TYPE_MASK); menu_callback_type menu_callback = NULL; int icon; @@ -210,6 +211,7 @@ static void init_menu_lists(const struct menu_item_ex *menu, current_subitems_count++; } } + current_submenus_menu = (struct menu_item_ex *)menu; gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1, parent); -- cgit v1.2.3