From e65fa741db8a85797a2b822bd925fb606b20a16e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20Dub=C3=A9?= <159546+serprex@users.noreply.github.com> Date: Tue, 13 Oct 2026 13:36:27 +0000 Subject: [PATCH] Fix OOB check in audio_seqplayer.c (#7387) --- soh/src/code/audio_seqplayer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/soh/src/code/audio_seqplayer.c b/soh/src/code/audio_seqplayer.c index 92efecd02e..b3bfdc5715 100644 --- a/soh/src/code/audio_seqplayer.c +++ b/soh/src/code/audio_seqplayer.c @@ -1186,12 +1186,12 @@ void AudioSeq_SequenceChannelProcessScript(SequenceChannel* channel) { u16 seqId = AudioEditor_GetReplacementSeq(seqPlayer->seqId); SequenceData sDat = ResourceMgr_LoadSeqByName(sequenceMap[seqId]); - // The game apparantely would sometimes do negative array lookups, the result of which would + // The game apparently would sometimes do negative array lookups, the result of which would // get rejected by AudioHeap_SearchCaches, never changing the actual fontid. - if (result > sDat.numFonts) + if (result >= sDat.numFonts) break; - fontId = sDat.fonts[(sDat.numFonts - result - 1)]; + fontId = sDat.fonts[sDat.numFonts - result - 1]; } if (AudioHeap_SearchCaches(FONT_TABLE, CACHE_EITHER, fontId)) {