From 9e15fa5e7cec67a479c1f2b31beca2d5d81fb4d8 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Wed, 14 Apr 2021 01:26:26 +0200 Subject: [PATCH] Prevent the indices from overflowing --- src/sfizz/SIMDHelpers.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sfizz/SIMDHelpers.h b/src/sfizz/SIMDHelpers.h index 5f71c8cb..30168f92 100644 --- a/src/sfizz/SIMDHelpers.h +++ b/src/sfizz/SIMDHelpers.h @@ -641,8 +641,10 @@ namespace _internals { template void snippetSFZInterpolationCast(const T*& floatJump, int*& jump, T*& coeff) { - *jump = static_cast(*floatJump); - *coeff = *floatJump - static_cast(*jump); + constexpr float maxJump { 1 << 24 }; + const float limitedJump = min(maxJump, *floatJump); + *jump = static_cast(limitedJump); + *coeff = limitedJump - static_cast(*jump); incrementAll(floatJump, coeff, jump); } }