From c5ca3b001169f3e45f4a45921f3c33ee512a412b Mon Sep 17 00:00:00 2001 From: Sven Baars Date: Tue, 1 Aug 2023 16:28:03 +0200 Subject: [PATCH] quartz: Fix some critical section leaks (Valgrind). --- dlls/quartz/filesource.c | 5 +++-- dlls/quartz/filtergraph.c | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c index 48950026ddf..7d6292df579 100644 --- a/dlls/quartz/filesource.c +++ b/dlls/quartz/filesource.c @@ -333,14 +333,15 @@ static void async_reader_destroy(struct strmbase_filter *iface) free(filter->requests); } CloseHandle(filter->file); - filter->sample_cs.DebugInfo->Spare[0] = 0; - DeleteCriticalSection(&filter->sample_cs); strmbase_source_cleanup(&filter->source); free(filter->pszFileName); FreeMediaType(&filter->mt); } + filter->sample_cs.DebugInfo->Spare[0] = 0; + DeleteCriticalSection(&filter->sample_cs); + PostQueuedCompletionStatus(filter->port, 0, 1, NULL); WaitForSingleObject(filter->io_thread, INFINITE); CloseHandle(filter->io_thread); diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c index e0e126d8ef0..4100e71be3a 100644 --- a/dlls/quartz/filtergraph.c +++ b/dlls/quartz/filtergraph.c @@ -486,8 +486,9 @@ static ULONG WINAPI FilterGraphInner_Release(IUnknown *iface) } LeaveCriticalSection(&message_cs); - This->cs.DebugInfo->Spare[0] = 0; + This->event_cs.DebugInfo->Spare[0] = 0; DeleteCriticalSection(&This->event_cs); + This->cs.DebugInfo->Spare[0] = 0; DeleteCriticalSection(&This->cs); free(This); }