# HG changeset patch # User Chris Cannam # Date 1631809971 -3600 # Thu Sep 16 17:32:51 2021 +0100 # Branch resampler # Node ID c8966ad8626ab2706ea605a8cb239a608c6f2d8e # Parent 9697f9a50c01a0cee2703e532830e624c0f8aa06 Correct calculation of dot_length in multi-channel case, fixing buffer overrun diff --git a/src/BQResampler.cpp b/src/BQResampler.cpp --- a/src/BQResampler.cpp +++ b/src/BQResampler.cpp @@ -600,7 +600,9 @@ int phase_length = pr.length; double result = 0.0; - int dot_length = min(phase_length, int(s->buffer.size()) - s->left); + int dot_length = + min(phase_length, + (int(s->buffer.size()) - s->left) / m_channels); if (m_dynamism == RatioMostlyFixed) { int phase_start = pr.start_index;