From 7f2d28e12f7f40b3f6eb4872cda489e8a3fe634e Mon Sep 17 00:00:00 2001 From: Jaap van Ekris <82339657+JaapvanEkris@users.noreply.github.com> Date: Mon, 4 May 2026 07:15:51 +0200 Subject: [PATCH 1/2] Bugfix for array overflow --- app/recorders/fitRecorder.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/recorders/fitRecorder.js b/app/recorders/fitRecorder.js index ebbf866a17..8bd980c9b9 100644 --- a/app/recorders/fitRecorder.js +++ b/app/recorders/fitRecorder.js @@ -1471,9 +1471,9 @@ export function createFITRecorder (config) { developerFieldValues.push({ developer_data_index: 0, field_num: 17, value: trackpoint.drivePeakHandleForceNormalizedPosition * 100 }) } - if (trackpoint.forceCurve.length > 0 && trackpoint.forceCurve.length < 128) { + if (trackpoint.forceCurve.length > 0 && trackpoint.forceCurve.length < Math.min(127, sessionData.maxForceCurvePointCount)) { const sampleInterval = trackpoint.driveLength / trackpoint.forceCurve.length - const paddedForceCurve = Array.from({ length: sessionData.maxForceCurvePointCount }, (_, i) => trackpoint.forceCurve[i] ?? '0') + const paddedForceCurve = Array.from({ length: Math.min(127, sessionData.maxForceCurvePointCount) }, (_, i) => trackpoint.forceCurve[i] ?? '0') developerFieldValues.push({ developer_data_index: 0, field_num: 90, value: 2 }) developerFieldValues.push({ developer_data_index: 0, field_num: 91, value: sampleInterval * 10000 }) developerFieldValues.push({ developer_data_index: 0, field_num: 92, value: trackpoint.forceCurve.length }) From de1d98a4fa130fb5f6d4a0b7329c95cedcbae568 Mon Sep 17 00:00:00 2001 From: Jaap van Ekris <82339657+JaapvanEkris@users.noreply.github.com> Date: Mon, 4 May 2026 12:33:59 +0200 Subject: [PATCH 2/2] Update fitRecorder.js --- app/recorders/fitRecorder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/recorders/fitRecorder.js b/app/recorders/fitRecorder.js index 8bd980c9b9..a4ee71cce6 100644 --- a/app/recorders/fitRecorder.js +++ b/app/recorders/fitRecorder.js @@ -1471,7 +1471,7 @@ export function createFITRecorder (config) { developerFieldValues.push({ developer_data_index: 0, field_num: 17, value: trackpoint.drivePeakHandleForceNormalizedPosition * 100 }) } - if (trackpoint.forceCurve.length > 0 && trackpoint.forceCurve.length < Math.min(127, sessionData.maxForceCurvePointCount)) { + if (trackpoint.forceCurve.length > 0 && trackpoint.forceCurve.length <= Math.min(127, sessionData.maxForceCurvePointCount)) { const sampleInterval = trackpoint.driveLength / trackpoint.forceCurve.length const paddedForceCurve = Array.from({ length: Math.min(127, sessionData.maxForceCurvePointCount) }, (_, i) => trackpoint.forceCurve[i] ?? '0') developerFieldValues.push({ developer_data_index: 0, field_num: 90, value: 2 })