Nikolay Sivov : mf: Fix timer instance leak on error path in SetTimer().
Alexandre Julliard
julliard at winehq.org
Wed May 6 15:34:28 CDT 2020
Module: wine
Branch: master
Commit: 35242aa417cd1dd7d61e72a1c8fdabd29517367f
URL: https://source.winehq.org/git/wine.git/?a=commit;h=35242aa417cd1dd7d61e72a1c8fdabd29517367f
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Wed May 6 15:49:11 2020 +0300
mf: Fix timer instance leak on error path in SetTimer().
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
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;
}
More information about the wine-cvs
mailing list