From da2460f9e7b23ea2be7de32c5657a0a3ce5a702a Mon Sep 17 00:00:00 2001
From: Petar Popovic <[EMAIL REDACTED]>
Date: Mon, 17 Feb 2025 00:19:17 +0100
Subject: [PATCH] test/testautomation_audio.c: Free variables before returning
---
test/testautomation_audio.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/test/testautomation_audio.c b/test/testautomation_audio.c
index 9d03338dc2bf9..7c141b3a56181 100644
--- a/test/testautomation_audio.c
+++ b/test/testautomation_audio.c
@@ -809,6 +809,7 @@ static int SDLCALL audio_convertAudio(void *arg)
src_buf = (Uint8 *)SDL_malloc(src_len);
SDLTest_AssertCheck(src_buf != NULL, "Check src data buffer to convert is not NULL");
if (src_buf == NULL) {
+ SDL_DestroyAudioStream(stream);
return TEST_ABORTED;
}
@@ -819,6 +820,8 @@ static int SDLCALL audio_convertAudio(void *arg)
dst_buf = (Uint8 *)SDL_malloc(dst_len);
SDLTest_AssertCheck(dst_buf != NULL, "Check dst data buffer to convert is not NULL");
if (dst_buf == NULL) {
+ SDL_DestroyAudioStream(stream);
+ SDL_free(src_buf);
return TEST_ABORTED;
}
@@ -828,6 +831,9 @@ static int SDLCALL audio_convertAudio(void *arg)
/* Run the audio converter */
if (!SDL_PutAudioStreamData(stream, src_buf, src_len) ||
!SDL_FlushAudioStream(stream)) {
+ SDL_DestroyAudioStream(stream);
+ SDL_free(src_buf);
+ SDL_free(dst_buf);
return TEST_ABORTED;
}
@@ -837,6 +843,9 @@ static int SDLCALL audio_convertAudio(void *arg)
real_dst_len = SDL_GetAudioStreamData(stream, dst_buf, dst_len);
SDLTest_AssertCheck(dst_len == real_dst_len, "Verify result value; expected: %i; got: %i", dst_len, real_dst_len);
if (dst_len != real_dst_len) {
+ SDL_DestroyAudioStream(stream);
+ SDL_free(src_buf);
+ SDL_free(dst_buf);
return TEST_ABORTED;
}
@@ -848,6 +857,9 @@ static int SDLCALL audio_convertAudio(void *arg)
for (m = 0; m < dst_len; ++m) {
if (dst_buf[m] != dst_silence) {
SDLTest_LogError("Output buffer is not silent");
+ SDL_DestroyAudioStream(stream);
+ SDL_free(src_buf);
+ SDL_free(dst_buf);
return TEST_ABORTED;
}
}
@@ -1104,6 +1116,7 @@ static int SDLCALL audio_resampleLoss(void *arg)
SDLTest_AssertCheck(buf_out != NULL, "Expected output buffer to be created.");
if (buf_out == NULL) {
SDL_DestroyAudioStream(stream);
+ SDL_free(buf_in);
return TEST_ABORTED;
}
@@ -1114,6 +1127,7 @@ static int SDLCALL audio_resampleLoss(void *arg)
SDL_free(buf_in);
if (len_out != len_target) {
SDL_DestroyAudioStream(stream);
+ SDL_free(buf_out);
return TEST_ABORTED;
}
@@ -1130,6 +1144,7 @@ static int SDLCALL audio_resampleLoss(void *arg)
sum_squared_value += target * target;
}
}
+ SDL_DestroyAudioStream(stream);
SDL_free(buf_out);
signal_to_noise = 10 * SDL_log10(sum_squared_value / sum_squared_error); /* decibel */
SDLTest_AssertCheck(ISFINITE(sum_squared_value), "Sum of squared target should be finite.");