From 5651bea82bfb4ff5792082652a66749e8088a725 Mon Sep 17 00:00:00 2001 From: Philipp AUER Date: Fri, 22 Dec 2023 23:24:12 +0100 Subject: [PATCH] [battle_controller_player.c] refactor and fix buffer overread (#3792) Co-authored-by: sbird --- src/battle_controller_player.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 43e84f1bff..b8ee5e0583 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -225,16 +225,16 @@ static u16 GetPrevBall(u16 ballId) return gBagPockets[BALLS_POCKET].itemSlots[i].itemId; } -static u16 GetNextBall(u16 ballId) +static u32 GetNextBall(u32 ballId) { - u16 ballNext = 0; + u32 ballNext = ITEM_NONE; s32 i; CompactItemsInBagPocket(&gBagPockets[BALLS_POCKET]); - for (i = 0; i < gBagPockets[BALLS_POCKET].capacity; i++) + for (i = 1; i < gBagPockets[BALLS_POCKET].capacity; i++) { - if (ballId == gBagPockets[BALLS_POCKET].itemSlots[i].itemId) + if (ballId == gBagPockets[BALLS_POCKET].itemSlots[i-1].itemId) { - ballNext = gBagPockets[BALLS_POCKET].itemSlots[i+1].itemId; + ballNext = gBagPockets[BALLS_POCKET].itemSlots[i].itemId; break; } }