[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: [PATCH] taskschd: Fix some server binding handle leaks (Valgrind).
From: Sven Baars <sven.wine () gmail ! com>
Date: 2019-05-31 20:22:40
Message-ID: 20190531202240.31300-1-sven.wine () gmail ! com
[Download RAW message or body]
Signed-off-by: Sven Baars <sven.wine@gmail.com>
---
dlls/taskschd/task.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c
index 54b678244b..2a1d0d42b3 100644
--- a/dlls/taskschd/task.c
+++ b/dlls/taskschd/task.c
@@ -3691,6 +3691,8 @@ static ULONG WINAPI TaskService_Release(ITaskService *iface)
{
TRACE("destroying %p\n", iface);
heap_free(task_svc);
+ if (rpc_handle)
+ RpcBindingFree(&rpc_handle);
}
return ref;
@@ -3881,11 +3883,14 @@ static HRESULT WINAPI TaskService_Connect(ITaskService *iface, VARIANT server, V
hr = start_schedsvc();
if (hr != S_OK) return hr;
- hr = RpcStringBindingComposeW(NULL, ncalrpc, NULL, NULL, NULL, &binding_str);
- if (hr != RPC_S_OK) return hr;
- hr = RpcBindingFromStringBindingW(binding_str, &rpc_handle);
- RpcStringFreeW(&binding_str);
- if (hr != RPC_S_OK) return hr;
+ if (!rpc_handle)
+ {
+ hr = RpcStringBindingComposeW(NULL, ncalrpc, NULL, NULL, NULL, &binding_str);
+ if (hr != RPC_S_OK) return hr;
+ hr = RpcBindingFromStringBindingW(binding_str, &rpc_handle);
+ RpcStringFreeW(&binding_str);
+ if (hr != RPC_S_OK) return hr;
+ }
/* Make sure that the connection works */
hr = SchRpcHighestVersion(&task_svc->version);
--
2.17.1
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic