Skip to content

Commit

Permalink
audio: clamp resampler interpolation values to prevent buffer overflow.
Browse files Browse the repository at this point in the history
Partially fixes Bugzilla #3848.
  • Loading branch information
icculus committed Oct 11, 2017
1 parent 0085f91 commit 763c387
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions src/audio/SDL_audiocvt.c
Expand Up @@ -501,10 +501,9 @@ SDL_ResampleAudio(const int chans, const int inrate, const int outrate,
const int srcindex = (int) (outtime * inrate);
const float intime = ((float) srcindex) / finrate;
const float innexttime = ((float) (srcindex + 1)) / finrate;

const float interpolation1 = 1.0f - (innexttime - outtime) / (innexttime - intime);
const float interpolation1 = SDL_max(0.0f, 1.0f - (innexttime - outtime) / (innexttime - intime));
const int filterindex1 = (int) (interpolation1 * RESAMPLER_SAMPLES_PER_ZERO_CROSSING);
const float interpolation2 = 1.0f - interpolation1;
const float interpolation2 = SDL_max(0.0f, 1.0f - interpolation1);
const int filterindex2 = (int) (interpolation2 * RESAMPLER_SAMPLES_PER_ZERO_CROSSING);

for (chan = 0; chan < chans; chan++) {
Expand Down

0 comments on commit 763c387

Please sign in to comment.