From 448bc9f236bc47a795acf706e961bdfc8b576128 Mon Sep 17 00:00:00 2001 From: "5684185+vsariola@users.noreply.github.com" <5684185+vsariola@users.noreply.github.com> Date: Tue, 20 May 2025 19:05:17 +0300 Subject: [PATCH] fix(tracker): OOB checks used index > len, but should've used >= --- tracker/derived.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tracker/derived.go b/tracker/derived.go index 95a4a3c..b37f75f 100644 --- a/tracker/derived.go +++ b/tracker/derived.go @@ -2,9 +2,10 @@ package tracker import ( "fmt" - "github.com/vsariola/sointu" "iter" "slices" + + "github.com/vsariola/sointu" ) /* @@ -88,21 +89,21 @@ func (m *Model) ParameterInfo(unitId int, paramName string) (isSendTarget bool, } func (m *Model) TrackTitle(index int) string { - if index < 0 || index > len(m.derived.forTrack) { + if index < 0 || index >= len(m.derived.forTrack) { return "" } return m.derived.forTrack[index].title } func (m *Model) PatternUseCount(index int) []int { - if index < 0 || index > len(m.derived.forPattern) { + if index < 0 || index >= len(m.derived.forPattern) { return nil } return m.derived.forPattern[index].useCount } func (m *Model) PatternUnique(t, p int) bool { - if t < 0 || t > len(m.derived.forPattern) { + if t < 0 || t >= len(m.derived.forPattern) { return false } forPattern := m.derived.forPattern[t] @@ -116,7 +117,7 @@ func (m *Model) PatternUnique(t, p int) bool { func (m *Model) TracksWithSameInstrumentAsCurrent() []int { currentTrack := m.d.Cursor.Track - if currentTrack > len(m.derived.forTrack) { + if currentTrack >= len(m.derived.forTrack) { return nil } return m.derived.forTrack[currentTrack].tracksWithSameInstrument