Parcourir la source

Fix buffer overrun in ConvertAudio with different src/dst channel count

- Source or destination format also has to not be F32 to trigger bug
hspir404 il y a 2 mois
Parent
commit
72a3eae0da
1 fichiers modifiés avec 1 ajouts et 1 suppressions
  1. 1 1
      src/audio/SDL_audiocvt.c

+ 1 - 1
src/audio/SDL_audiocvt.c

@@ -325,7 +325,7 @@ void ConvertAudio(int num_frames,
 
     // Gain adjustment
     if (gain != 1.0f) {
-        float *buf = (float *)(dstconvert ? scratch : dst);
+        float *buf = (float *)((channelconvert || dstconvert) ? scratch : dst);
         const int total_samples = num_frames * src_channels;
         if (src == buf) {
             for (int i = 0; i < total_samples; i++) {