Andrew Eikum : winepulse.drv: Fix memory leak.
Alexandre Julliard
julliard at winehq.org
Fri Jan 14 15:11:16 CST 2022
Module: wine
Branch: master
Commit: 6fa197c3ec60066256bd8b847cc79ff8f743c6b5
URL: https://source.winehq.org/git/wine.git/?a=commit;h=6fa197c3ec60066256bd8b847cc79ff8f743c6b5
Author: Andrew Eikum <aeikum at codeweavers.com>
Date: Fri Jan 14 10:04:17 2022 -0600
winepulse.drv: Fix memory leak.
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winepulse.drv/pulse.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c
index bd886e0d879..356f68e0db2 100644
--- a/dlls/winepulse.drv/pulse.c
+++ b/dlls/winepulse.drv/pulse.c
@@ -928,6 +928,7 @@ static NTSTATUS pulse_release_stream(void *args)
{
struct release_stream_params *params = args;
struct pulse_stream *stream = params->stream;
+ SIZE_T size;
if(params->timer) {
stream->please_quit = TRUE;
@@ -944,12 +945,16 @@ static NTSTATUS pulse_release_stream(void *args)
pa_stream_unref(stream->stream);
pulse_unlock();
- if (stream->tmp_buffer)
+ if (stream->tmp_buffer) {
+ size = 0;
NtFreeVirtualMemory(GetCurrentProcess(), (void **)&stream->tmp_buffer,
- &stream->tmp_buffer_bytes, MEM_RELEASE);
- if (stream->local_buffer)
+ &size, MEM_RELEASE);
+ }
+ if (stream->local_buffer) {
+ size = 0;
NtFreeVirtualMemory(GetCurrentProcess(), (void **)&stream->local_buffer,
- &stream->alloc_size, MEM_RELEASE);
+ &size, MEM_RELEASE);
+ }
free(stream->peek_buffer);
free(stream);
return STATUS_SUCCESS;
@@ -1514,13 +1519,16 @@ static NTSTATUS pulse_reset(void *args)
static BOOL alloc_tmp_buffer(struct pulse_stream *stream, SIZE_T bytes)
{
+ SIZE_T size;
+
if (stream->tmp_buffer_bytes >= bytes)
return TRUE;
if (stream->tmp_buffer)
{
+ size = 0;
NtFreeVirtualMemory(GetCurrentProcess(), (void **)&stream->tmp_buffer,
- &stream->tmp_buffer_bytes, MEM_RELEASE);
+ &size, MEM_RELEASE);
stream->tmp_buffer = NULL;
stream->tmp_buffer_bytes = 0;
}
More information about the wine-cvs
mailing list