BPM PeakFinder: Fix possible reading past end of array.

Increase minor version accordingly.
This commit is contained in:
Olli Parviainen 2019-01-07 18:55:36 +02:00
parent 12cb25ed7b
commit 244fbeac24
3 changed files with 11 additions and 6 deletions

View File

@ -14,8 +14,8 @@
</head> </head>
<body class="normal"> <body class="normal">
<hr> <hr>
<h1>SoundTouch audio processing library v2.1.2</h1> <h1>SoundTouch audio processing library v2.1.3 pre</h1>
<p class="normal">SoundTouch library Copyright &copy; Olli Parviainen 2001-2018</p> <p class="normal">SoundTouch library Copyright &copy; Olli Parviainen 2001-2019</p>
<hr> <hr>
<h2>1. Introduction </h2> <h2>1. Introduction </h2>
<p>SoundTouch is an open-source audio processing library that allows <p>SoundTouch is an open-source audio processing library that allows
@ -575,6 +575,10 @@ this corresponds to lowering the pitch by -0.318 semitones:</p>
<hr> <hr>
<h2>5. Change History</h2> <h2>5. Change History</h2>
<h3>5.1. SoundTouch library Change History </h3> <h3>5.1. SoundTouch library Change History </h3>
<p><b>2.1.3 pre:</b></p>
<ul>
<li>Bugfix: Fixed possible reading past end of array in BPM peak detection algorithm</li>
</ul>
<p><b>2.1.2:</b></p> <p><b>2.1.2:</b></p>
<ul> <ul>
<li>Bump version to 2.1.2 also in configure.ac. The earlier release had old version info for GNU autotools.</li> <li>Bump version to 2.1.2 also in configure.ac. The earlier release had old version info for GNU autotools.</li>
@ -869,6 +873,7 @@ submitted bugfixes:</p>
<li> Jamie Bullock</li> <li> Jamie Bullock</li>
<li> Chris Bryan</li> <li> Chris Bryan</li>
<li> Jacek Caban</li> <li> Jacek Caban</li>
<li> Marketa Calabkova</li>
<li> Brian Cameron</li> <li> Brian Cameron</li>
<li> Jason Champion</li> <li> Jason Champion</li>
<li> Giuseppe Cigala</li> <li> Giuseppe Cigala</li>
@ -923,6 +928,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</p>
<p>---</p> <p>---</p>
<p>commercial license alternative also available, contact author for details.</p> <p>commercial license alternative also available, contact author for details.</p>
<hr> <hr>
<p><i>README.html file updated in November-2018</i></p> <p><i>README.html file updated in January-2019</i></p>
</body> </body>
</html> </html>

View File

@ -72,10 +72,10 @@ namespace soundtouch
{ {
/// Soundtouch library version string /// Soundtouch library version string
#define SOUNDTOUCH_VERSION "2.1.2" #define SOUNDTOUCH_VERSION "2.1.3"
/// SoundTouch library version id /// SoundTouch library version id
#define SOUNDTOUCH_VERSION_ID (20102) #define SOUNDTOUCH_VERSION_ID (20103)
// //
// Available setting IDs for the 'setSetting' & 'get_setting' functions: // Available setting IDs for the 'setSetting' & 'get_setting' functions:

View File

@ -142,7 +142,7 @@ int PeakFinder::findCrossingLevel(const float *data, float level, int peakpos, i
peaklevel = data[peakpos]; peaklevel = data[peakpos];
assert(peaklevel >= level); assert(peaklevel >= level);
pos = peakpos; pos = peakpos;
while ((pos >= minPos) && (pos < maxPos)) while ((pos >= minPos) && (pos + direction < maxPos))
{ {
if (data[pos + direction] < level) return pos; // crossing found if (data[pos + direction] < level) return pos; // crossing found
pos += direction; pos += direction;