[PATCH] mf: Fix timer instance leak on error path in SetTimer().
Nikolay Sivov
nsivov at codeweavers.com
Wed May 6 07:49:11 CDT 2020
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/mf/session.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c
index d6b881218b..25832afdbb 100644
--- a/dlls/mf/session.c
+++ b/dlls/mf/session.c
@@ -4093,15 +4093,19 @@ static HRESULT WINAPI present_clock_timer_SetTimer(IMFTimer *iface, DWORD flags,
hr = MF_S_CLOCK_STOPPED;
if (SUCCEEDED(hr))
+ {
list_add_tail(&clock->timers, &clock_timer->entry);
+ if (cancel_key)
+ {
+ *cancel_key = &clock_timer->IUnknown_iface;
+ IUnknown_AddRef(*cancel_key);
+ }
+ }
LeaveCriticalSection(&clock->cs);
- if (SUCCEEDED(hr) && cancel_key)
- {
- *cancel_key = &clock_timer->IUnknown_iface;
- IUnknown_AddRef(*cancel_key);
- }
+ if (FAILED(hr))
+ IUnknown_Release(&clock_timer->IUnknown_iface);
return hr;
}
--
2.26.2
More information about the wine-devel
mailing list