Dmitry Timoshkov : taskschd/tests: Fix memory leaks (Valgrind).
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Nov 9 08:34:17 CST 2015
Module: wine
Branch: master
Commit: 557c3714e80c70b0d7140349e8ad330aa86e0eca
URL: http://source.winehq.org/git/wine.git/?a=commit;h=557c3714e80c70b0d7140349e8ad330aa86e0eca
Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date: Mon Nov 9 12:22:27 2015 +0800
taskschd/tests: Fix memory leaks (Valgrind).
Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/taskschd/task.c | 2 +-
dlls/taskschd/tests/scheduler.c | 18 ++++++++++++++++--
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c
index 5a7ade8..c33cda1 100644
--- a/dlls/taskschd/task.c
+++ b/dlls/taskschd/task.c
@@ -2611,8 +2611,8 @@ static HRESULT WINAPI TaskService_Connect(ITaskService *iface, VARIANT server, V
hr = RpcStringBindingComposeW(NULL, ncalrpc, NULL, NULL, NULL, &binding_str);
if (hr != RPC_S_OK) return hr;
hr = RpcBindingFromStringBindingW(binding_str, &rpc_handle);
- if (hr != RPC_S_OK) return hr;
RpcStringFreeW(&binding_str);
+ if (hr != RPC_S_OK) return hr;
/* Make sure that the connection works */
hr = SchRpcHighestVersion(&task_svc->version);
diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c
index 9a745b8..60a6c94 100644
--- a/dlls/taskschd/tests/scheduler.c
+++ b/dlls/taskschd/tests/scheduler.c
@@ -782,6 +782,7 @@ static void test_GetTask(void)
{
hr = ITaskFolder_DeleteTask(root, Wine_Task1, 0);
ok(hr == S_OK, "DeleteTask error %#x\n", hr);
+ IRegisteredTask_Release(task1);
}
}
@@ -809,8 +810,10 @@ todo_wine
for (i = 0; i < sizeof(open_existing_task)/sizeof(open_existing_task[0]); i++)
{
- hr = ITaskFolder_RegisterTask(root, Wine_Task1, xmlW, open_existing_task[i].flags, v_null, v_null, TASK_LOGON_NONE, v_null, &task1);
+ hr = ITaskFolder_RegisterTask(root, Wine_Task1, xmlW, open_existing_task[i].flags, v_null, v_null, TASK_LOGON_NONE, v_null, &task2);
ok(hr == open_existing_task[i].hr, "%d: expected %#x, got %#x\n", i, open_existing_task[i].hr, hr);
+ if (hr == S_OK)
+ IRegisteredTask_Release(task2);
}
hr = IRegisteredTask_get_Name(task1, NULL);
@@ -944,6 +947,7 @@ todo_wine
ok(hr == S_OK, "get_Name error %#x\n", hr);
hr = IIDFromString(bstr, &iid);
ok(hr == S_OK, "IIDFromString error %#x\n", hr);
+ SysFreeString(bstr);
IRegisteredTask_Release(task1);
@@ -1006,7 +1010,10 @@ static void test_settings_v1(ITaskDefinition *taskdef, struct settings *test, st
if (!def->restart_interval[0])
ok(bstr == NULL, "expected NULL, got %s\n", wine_dbgstr_w(bstr));
else
+ {
ok(!lstrcmpW(bstr, def->restart_interval), "expected %s, got %s\n", wine_dbgstr_w(def->restart_interval), wine_dbgstr_w(bstr));
+ SysFreeString(bstr);
+ }
hr = ITaskSettings_get_RestartCount(set, &vint);
ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
@@ -1052,7 +1059,10 @@ static void test_settings_v1(ITaskDefinition *taskdef, struct settings *test, st
if (!test->delete_expired_task_after[0])
ok(bstr == NULL, "expected NULL, got %s\n", wine_dbgstr_w(bstr));
else
+ {
ok(!lstrcmpW(bstr, test->delete_expired_task_after), "expected %s, got %s\n", wine_dbgstr_w(test->delete_expired_task_after), wine_dbgstr_w(bstr));
+ SysFreeString(bstr);
+ }
hr = ITaskSettings_get_Priority(set, &vint);
ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
@@ -1094,7 +1104,11 @@ static void change_settings(ITaskDefinition *taskdef, struct settings *test)
todo_wine
ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
/* FIXME: Remove once implemented */
- if (hr != S_OK) return;
+ if (hr != S_OK)
+ {
+ ITaskSettings_Release(set);
+ return;
+ }
hr = ITaskSettings_put_RestartCount(set, test->restart_count);
ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
More information about the wine-cvs
mailing list