From: Huw Davies Subject: [PATCH 1/2] winecoreaudio: Set the buffer to NULL after freeing. Message-Id: <20211221154513.6009-1-huw@codeweavers.com> Date: Tue, 21 Dec 2021 15:45:12 +0000 This ensures the subsequent allocation is free to pick a new location. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52202 Signed-off-by: Huw Davies --- dlls/winecoreaudio.drv/coreaudio.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dlls/winecoreaudio.drv/coreaudio.c b/dlls/winecoreaudio.drv/coreaudio.c index 00bd79927ca..4bb83a37621 100644 --- a/dlls/winecoreaudio.drv/coreaudio.c +++ b/dlls/winecoreaudio.drv/coreaudio.c @@ -1352,8 +1352,11 @@ static NTSTATUS get_render_buffer(void *args) if(stream->wri_offs_frames + params->frames > stream->bufsize_frames){ if(stream->tmp_buffer_frames < params->frames){ - NtFreeVirtualMemory(GetCurrentProcess(), (void **)&stream->tmp_buffer, - &stream->tmp_buffer_size, MEM_RELEASE); + if(stream->tmp_buffer){ + NtFreeVirtualMemory(GetCurrentProcess(), (void **)&stream->tmp_buffer, + &stream->tmp_buffer_size, MEM_RELEASE); + stream->tmp_buffer = NULL; + } stream->tmp_buffer_size = params->frames * stream->fmt->nBlockAlign; if(NtAllocateVirtualMemory(GetCurrentProcess(), (void **)&stream->tmp_buffer, 0, &stream->tmp_buffer_size, MEM_COMMIT, PAGE_READWRITE)){ -- 2.23.0