Skip to content

Commit

Permalink
Fix debug menu memory overflow (#3154)
Browse files Browse the repository at this point in the history
  • Loading branch information
Bassoonian authored Jul 19, 2023
1 parent 6b5d1e7 commit 6d7d7f1
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,8 @@ enum { //Sound
#define DEBUG_NUMBER_ICON_X 210
#define DEBUG_NUMBER_ICON_Y 50

#define DEBUG_MAX_MENU_ITEMS 50

// *******************************
struct DebugMonData
{
Expand All @@ -234,7 +236,7 @@ struct DebugMonData
struct DebugMenuListData
{
struct ListMenuItem listItems[20 + 1];
u8 itemNames[PC_ITEMS_COUNT + 1][26];
u8 itemNames[DEBUG_MAX_MENU_ITEMS + 1][26];
u8 listId;
};

Expand Down Expand Up @@ -1132,6 +1134,8 @@ static void Debug_RefreshListMenu(u8 taskId)
totalItems = 7;
}

// Failsafe to prevent memory corruption
totalItems = min(totalItems, DEBUG_MAX_MENU_ITEMS);
// Copy item names for all entries but the last (which is Cancel)
for(i = 0; i < totalItems; i++)
{
Expand Down

0 comments on commit 6d7d7f1

Please sign in to comment.