From 72a3eae0da06babf5daa22ead75b107961a64a56 Mon Sep 17 00:00:00 2001 From: hspir404 Date: Thu, 23 Jan 2025 02:32:00 -0800 Subject: [PATCH] Fix buffer overrun in ConvertAudio with different src/dst channel count - Source or destination format also has to not be F32 to trigger bug --- src/audio/SDL_audiocvt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audio/SDL_audiocvt.c b/src/audio/SDL_audiocvt.c index daf44da02b..f128f8b5ae 100644 --- a/src/audio/SDL_audiocvt.c +++ b/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++) {