[PATCH] mmdevapi/tests: Fix memory leaks (Coverity)
Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com> --- dlls/mmdevapi/tests/capture.c | 4 ++-- dlls/mmdevapi/tests/render.c | 8 ++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/dlls/mmdevapi/tests/capture.c b/dlls/mmdevapi/tests/capture.c index 99da296e0a..3cdfda1a37 100644 --- a/dlls/mmdevapi/tests/capture.c +++ b/dlls/mmdevapi/tests/capture.c @@ -556,8 +556,7 @@ static void test_audioclient(void) if (hr != S_OK) { skip("Cannot initialize %08x, remainder of tests is useless\n", hr); - CoTaskMemFree(pwfx); - return; + goto cleanup; } hr = IAudioClient_GetStreamLatency(ac, NULL); @@ -592,6 +591,7 @@ static void test_audioclient(void) test_capture(ac, handle, pwfx); +cleanup: IAudioClient_Release(ac); CloseHandle(handle); CoTaskMemFree(pwfx); diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c index e394d59cfe..9d3e8617b9 100644 --- a/dlls/mmdevapi/tests/render.c +++ b/dlls/mmdevapi/tests/render.c @@ -323,11 +323,7 @@ static void test_audioclient(void) hr = IAudioClient_Initialize(ac, AUDCLNT_SHAREMODE_SHARED, 0, 5000000, 0, pwfx, NULL); ok(hr == S_OK, "Valid Initialize returns %08x\n", hr); if (hr != S_OK) - { - IAudioClient_Release(ac); - CoTaskMemFree(pwfx); - return; - } + goto cleanup; hr = IAudioClient_GetStreamLatency(ac, NULL); ok(hr == E_POINTER, "GetStreamLatency(NULL) call returns %08x\n", hr); @@ -372,8 +368,8 @@ static void test_audioclient(void) hr = IAudioClient_Start(ac); ok(hr == AUDCLNT_E_NOT_STOPPED, "Start twice returns %08x\n", hr); +cleanup: IAudioClient_Release(ac); - CloseHandle(handle); CoTaskMemFree(pwfx); } -- 2.15.1
Hi, While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at https://testbot.winehq.org/JobDetails.pl?Key=34825 Your paranoid android. === w864 (64 bit render) === render.c:1025: Test failed: Position 6592 too far after playing 100ms === w1064 (32 bit capture) === capture.c:181: Test failed: Position 375 expected 0 capture.c:318: Test failed: Position 1271 gap 0
Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com> On Tue, Dec 19, 2017 at 09:00:17AM -0700, Alex Henrie wrote:
Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com> --- dlls/mmdevapi/tests/capture.c | 4 ++-- dlls/mmdevapi/tests/render.c | 8 ++------ 2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/dlls/mmdevapi/tests/capture.c b/dlls/mmdevapi/tests/capture.c index 99da296e0a..3cdfda1a37 100644 --- a/dlls/mmdevapi/tests/capture.c +++ b/dlls/mmdevapi/tests/capture.c @@ -556,8 +556,7 @@ static void test_audioclient(void) if (hr != S_OK) { skip("Cannot initialize %08x, remainder of tests is useless\n", hr); - CoTaskMemFree(pwfx); - return; + goto cleanup; }
hr = IAudioClient_GetStreamLatency(ac, NULL); @@ -592,6 +591,7 @@ static void test_audioclient(void)
test_capture(ac, handle, pwfx);
+cleanup: IAudioClient_Release(ac); CloseHandle(handle); CoTaskMemFree(pwfx); diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c index e394d59cfe..9d3e8617b9 100644 --- a/dlls/mmdevapi/tests/render.c +++ b/dlls/mmdevapi/tests/render.c @@ -323,11 +323,7 @@ static void test_audioclient(void) hr = IAudioClient_Initialize(ac, AUDCLNT_SHAREMODE_SHARED, 0, 5000000, 0, pwfx, NULL); ok(hr == S_OK, "Valid Initialize returns %08x\n", hr); if (hr != S_OK) - { - IAudioClient_Release(ac); - CoTaskMemFree(pwfx); - return; - } + goto cleanup;
hr = IAudioClient_GetStreamLatency(ac, NULL); ok(hr == E_POINTER, "GetStreamLatency(NULL) call returns %08x\n", hr); @@ -372,8 +368,8 @@ static void test_audioclient(void) hr = IAudioClient_Start(ac); ok(hr == AUDCLNT_E_NOT_STOPPED, "Start twice returns %08x\n", hr);
+cleanup: IAudioClient_Release(ac); - CloseHandle(handle); CoTaskMemFree(pwfx); } -- 2.15.1
participants (3)
-
Alex Henrie -
Andrew Eikum -
Marvin