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

- Source or destination format also has to not be F32 to trigger bug
This commit is contained in:
hspir404
2025-01-23 02:32:00 -08:00
committed by Ryan C. Gordon
parent 983cfe8b1c
commit 72a3eae0da

View File

@@ -325,7 +325,7 @@ void ConvertAudio(int num_frames,
// Gain adjustment // Gain adjustment
if (gain != 1.0f) { 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; const int total_samples = num_frames * src_channels;
if (src == buf) { if (src == buf) {
for (int i = 0; i < total_samples; i++) { for (int i = 0; i < total_samples; i++) {