diff -Nurd chocolate-doom-2.1.0.orig/src/i_sdlsound.c chocolate-doom-2.1.0/src/i_sdlsound.c --- chocolate-doom-2.1.0.orig/src/i_sdlsound.c 2014-10-22 00:23:29.000000000 -0400 +++ chocolate-doom-2.1.0/src/i_sdlsound.c 2018-02-08 13:00:06.000000000 -0500 @@ -339,6 +339,7 @@ int length) { SRC_DATA src_data; + float *data_in; uint32_t i, abuf_index=0, clipped=0; uint32_t alen; int retn; @@ -346,7 +347,8 @@ Mix_Chunk *chunk; src_data.input_frames = length; - src_data.data_in = malloc(length * sizeof(float)); + data_in = malloc(length * sizeof(float)); + src_data.data_in = data_in; src_data.src_ratio = (double)mixer_freq / samplerate; // We include some extra space here in case of rounding-up. @@ -362,7 +364,7 @@ // Unclear whether 128 should be interpreted as "zero" or whether a // symmetrical range should be assumed. The following assumes a // symmetrical range. - src_data.data_in[i] = data[i] / 127.5 - 1; + data_in[i] = data[i] / 127.5 - 1; } // Do the sound conversion @@ -430,7 +432,7 @@ expanded[abuf_index++] = cvtval_i; } - free(src_data.data_in); + free(data_in); free(src_data.data_out); if (clipped > 0)